美文网首页
MongoDB forEach()

MongoDB forEach()

作者: 沧海2122537190 | 来源:发表于2019-06-26 18:46 被阅读0次

对全部表进行操作

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 });
    }
);

相关文章

网友评论

      本文标题:MongoDB forEach()

      本文链接:https://www.haomeiwen.com/subject/sldhcctx.html