MongoDB常用命令积累&分享

来源:互联网 发布:tp网络价格是什么意思 编辑:程序博客网 时间:2024/06/09 11:18

本文在工作中用到的mongo命令积累,用来自己积累和分享,喜欢或对你有用,欢迎点赞,持续更新……

1.mongo 脚本循环 forEach

var datas = db.material.find({"platformMtlId":{$exists:true}})
datas.forEach(function(o){
    var be = db.platformMaterial.findOne({"_id":ObjectId(o.platformMtlId)})
    if(be){
        o.code = be.code
        db.material.save(o)
    }
});

2.打印printjson

printjson(db.customer.findOne({"_id":ObjectId("597809d545ce47d61502f520")}))    

3.查询多个find,单个findOne

db.customer.find({})

db.customer.findOne({"_id":ObjectId("597809d545ce47d61502f520")})

4.DBRef关联查询,Id前加$符号

db.beMtl.find({"enterpris.$id":ObjectId("597809d545ce47d61502f520")})

5.mongo脚本循环for

for(var data = db.beMtl.find({"_id":ObjectId("599bfc93ca1539f773c4aa35")});data.hasNext();){
    printjson(data.next()._id);
}

6.DBRef关联查询获取DBRef中的ID,getId()

printjson(db.beMtl.findOne({"_id":ObjectId("599bfc93ca1539f773c4aa35")}).enterpris.getId()) //enterpris在beMtl中用DBRef关联的

类似的方法获取集合名等参考API文档

http://api.mongodb.com/java/current/com/mongodb/DBRef.html

7.更新update,(query,update,upsert [没有就更新:true,否则false],multi

db.material.update({"subSpecMrk":false},{$set:{"subSpecMrk":true}},false,true)

8.删除remove

db.beMtl.remove({"_id":ObjectId("597809d545ce47d61502f520"})

9.ObjectId里面值的取法valueOf())

var ecs = db.collection.find({})
ecs.forEach(function(o){

    printjson(o._id)
    printjson(o._id.valueOf())
    
})结果//ObjectId("5845283dd107ce61f3c92e37") "5845283dd107ce61f3c92e37"

10.判断字段类型 instanceof 

printjson("------------------start-------------------");
var data = db.beMtl.find({"material.pPStd":{$ne:null}})
var dataSize = data.size();
var i = 0;
data.forEach(function(o){
    i=i+1;
    if(!(o.material.pPStd instanceof Array)){
        o.material.pPStd = [o.material.pPStd]
        db.beMtl.save(o)
    }
   printjson(i+"/"+dataSize);
});
printjson("------------------end-----------------------")


原创粉丝点击