MongoDB常用命令积累&分享

本文在工作中用到的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-----------------------")//数值 Int32   eg:e._id instanceof Int32

11.MongoDB根据条件聚合再过滤


db.address.aggregate([
    {
        $match:{"dataTyId":{$in:[30,40,80,90,200]}}
    },
    {
        $group:{"_id":"$beId","datas":{$addToSet:{"name":"$name","sourceId":"$beId","bizFuncTypeId":"$bizFuncTypeId"}}}
    },
    {
        $match:{"datas":{"$size":2}}
    }
    
])

12.MongoDB中字段存的类型是数组,查看字段数组长度为制定长度的数据:db.collection.find({"attrList.1":{$exists:true}})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值