本文在工作中用到的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}})