// 比较符
$eq 匹配等于指定值的值
$gt 匹配大于指定值的值
$gte 匹配大于或等于指定值的值
$in 匹配数组中指定的任何值
$lt 匹配小于指定值的值
$lte 匹配小于或等于指定值的值
$ne 匹配所有不等于指定值的值
$nin 不匹配数组中指定的任何值
// 逻辑查询操作符
$and 匹配符合多个条件的文档
$not 匹配不符合条件的文档
$nor 匹配不符合多个条件的文档
$or 匹配符合任一条件的文档
// 元素查询操作符
$exists 匹配具有指定字段的文档
$type 匹配字段值符合类型的文档

membersNum 根据类型查找数据
{membersNum:{$type:"string"}}
db.getCollection('tableName').find({$and:[{province: "云南省"}{membersNum:{$type:"string"}}]})
membersNum 根据不等于空
{membersNum:{$ne:null}}
db.getCollection('tableName').find({$and:[{province: "云南省"}{membersNum:{$ne:null}}]})
统计数量
db.getCollection('tableName').find({$and:[{province: "云南省"},{status: 1}]}).count()
membersNum字段 统计累加求和
db.getCollection('tableName')
.aggregate({
$match:{
$and:[{province: "云南省"},{status: 1}]
}
},
{
$group: { _id : "$province", fieldName : { $sum: "$membersNum" } }
})
根据条件更新
// 更新
db.getCollection('tableName').find({$and:[{status: 1},{membersNum:{$type:"long"}}]}).forEach(
function(item) {
db.getCollection('outside_org_data').update({
"_id": item._id
}, {
$set: {
"membersNum": 10
}
})
}
)
string 筛选根据length
筛选meeting字段长度>2的数据
db.getCollection('tableName').find({$and:[{formId:22},{'$where':"function(){ return this.meeting.length>2}"}]})
根据条件更新
// 根据条件 更新数据
db.getCollection('tableName').updateMany({formId:22,status:1,youthNum:1,youthOtherPersonelNum:{$type:2}},{$set:{youthOtherPersonelNum:0}})
组合条件
db.getCollection('tableName').aggregate(
[ { "$match" :
{ "formId" : 22 , "status" : 1 , "youthNum" : 1 , "buildList" : 1}
},
{ "$project" :
{ "buildListData" : 1 , "province" : 1 , "city" : 1 , "district" : 1 , "_id" : 0}
},
{ "$unwind" : "$buildListData"} ,
{ "$group" :
{ "_id" :
{ "province" : "$province" , "sgwActiveTypeNum" : "$buildListData.sgwActiveTypeNum" , "sgeActivityPeoplesNum" : "$buildListData.sgeActivityPeoplesNum"} ,\
"count" : { "$sum" : 1}
}
} ,
{ "$project" :
{ "areaName" : "$_id.province" , "sgwActiveTypeNum" : "$_id.sgwActiveTypeNum" , "sgeActivityPeoplesNum" : "$_id.sgeActivityPeoplesNum" , "total" : "$count" , "_id" : 0}
}
])
根据条件 某字段求和
db.getCollection("tableName").aggregate([
{
"$match":{ formId:22, status:1,youthNum:1,province: '重庆市',membersNum:{$type:18}}
},{
"$group":{
"_id":"membersNum",
total:{$sum:"$membersNum"}
}
}
])
批量查找替换
var result = db.getCollection('tableName1').find({$and:[{userId:351359}]})
while(result.hasNext()){
var obj = result.next();
db.getCollection('tableName').updateOne({_id:obj._id},{$set:{edu: obj.edu}})
}
查找结果 按照某字段排序
db.getCollection('tableName').find({$and:[{status:1}]}).sort({userId: 1})
网友评论