MongoDB forEach()
2019-06-26 本文已影响0人
沧海2122537190
对全部表进行操作
db.getCollectionNames().forEach();
1.为本数据库所有表/集合建索引 eg:索引字段“odi_id”
db.getCollectionNames().forEach(
function(collection_name){
db.getCollection(collection_name).createIndex({"odi_id":1})
});
2.获取一个数据库中全部表名/集合名及文档数
将结果打印输出
db.getCollectionNames().forEach(
function(collection_name){
print(collection_name +": "+db.getCollection(collection_name).find().count());
});
db.getCollectionNames().forEach(
function(collection_name){
print(collection_name,db.runCommand({"collstats": collection_name})['count'])
}
);
注:db.getCollectionNames()返回的是数组,相当于db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
对表内全部数据进行操作
db.getCollection("表名").find().forEach()
1.全部文档,部分内容用replace替换
eg:将表issue_xjwo_test中字段sp6内的“横线”换成“-”
db.getCollection("issue_xjwo_test").find().forEach(
function(rep) {
a = rep.sp6;
b = a.replace("横线", "-");
db.getCollection("issue_xjwo_test").update({_id: rep._id},
{$set: { 'sp6': b}},{multi: true})
}
)
2.把一个字段的值,填入另一个字段
eg:将表issue_xjwo_test中sp6的值填入sp4
db.getCollection("issue_xjwo_test").find().forEach(
function(rep) {
db.getCollection("issue_xjwo_test").update({ _id: rep._id},
{$set: {'sp4': rep.sp6}},{multi: true})
}
)
3.一个字段拆分成多个字段
eg:sp把中字段以"/"拆分,分别存入sp1,sp2,sp3,sp4,sp5中
function(spli) {
a = spli.sp.split("/");
db.getCollection("issue_xjwo_test").update({_id : spli._id},
{$set:{"sp1": a[0],"sp2": a[1],"sp3": a[2],"sp4": a[3],"sp5": a[4],
} }, { multi: true });
}
);