查看索引
db.getCollection('wx_contacts_inf_102').getIndexes()
新建索引
db.getCollection('wx_contacts_inf_102').createIndex({"delete_flag":1})
db.getCollection('wx_contacts_inf_102').createIndex({'unionid':-1,'alias':-1,'mobile':-1})
删除索引
dropIndex({firstname:1})
eq:匹配等于指定值的值。 =
gt:匹配大于指定值的值。 >
gte:匹配大于或等于指定值的值。>=
lt:匹配小于规定值的值。 <
lte:匹配是小于或等于规定值的值。<=
ne:匹配不等于指定值的所有值。!=
in:匹配任何在数组中指定的值。
nin:没有匹配数组中的规定值
sort 排序
skip 起始位置
limit 截止位置
添加字段
db.getCollection('consumption').update({}, {$set: {'delete_flag':0}}, {multi: true})
//修改某个字段的值
db.getCollection('consumption').update({'consumption_id': {$in:['yyt1544697235048','yyt1544254791007']}
}, {$set: {'delete_flag':1}}, {multi: true}
)
查看索引
db.getCollection('wx_contacts_inf_102').getIndexes()
新建索引
db.getCollection('wx_contacts_inf_102').ensureIndex({"delete_flag":1})
分页查询
db.getCollection('member_64').find({}).sort({'opencard_time':-1}).skip(0).limit(1);
in查询
db.getCollection('orders_102').find({'order_no':{'$in':['1512626454535']}})
是否为空查询
db.getCollection('member_64').find({'member_id':{$exists:false}});//空 ,true不为空
//存在且不为空""
db.getCollection('orders_102').find({'channel_id':{$nin:[null,""]}})
//条件查询,并修改数据(默认只更新第一条)
db.getCollection('wxtj_dailyreport').update(
{'channel_name':'8501'},
{'$set':{'invest_money':987}}
)
db.getCollection('wxtj_dailyreport').update(
{'company_id':102},
{'$set':{'invest_money':0}},
{multi:true} //多条
)
//分组查询,求和
db.getCollection('wxtj_day').aggregate([
{'$match':{
'company_id':102,
'sys_group_id':{'$in': ['1539107778168','1539486287127','1539107786221','1539106431780']},
'create_data':{'$gte':'1541001600000'}
}},
{'$group':{'_id':'$sys_group_id',num:{'$sum':'$invalid_num'}}
}
])
//根据字段分组查询,并计算指定字段的和
db.getCollection('wxtj_day').aggregate([
{'$match':{
'company_id':102,
'custom_id':462,
'create_data':{'$gte':'1543593600000'}
}
},
{'$group':{ '_id':'$custom_id',
order_num:{'$sum':'$order_num'},
order_total:{'$sum':'$order_total'},
invalid_num: {'$sum':'$invalid_num'},
invalid_toatl: {'$sum':'$invalid_toatl'}
}
}
])
db.getCollection('wx_contacts_inf_102').find({
'channel_id':{$nin:[null,""]},
'weixinid':{$nin:[null,""]},
'isfriend':1,
'create_date':{$gte:'1545382800000',$lte:'1545469200000'}
}).sort({'create_date':-1})
db.getCollection('wx_contacts_inf_102').find({
'channel_id':{$nin:[null,""]},
'weixinid':{$nin:[null,""]},
'sys_group_id':{$nin:[null,""]},
'custom_id':{$nin:[null,""]},
"channel_id" : "1534921211056",
'create_date':{$gte:'1546419600000',$lte:'1546506000000'}})
只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
db.getCollection('wxtj_dailyreport').update({'create_date':'2019-03-01','channel_name':'6081'},{$set:{'create_date':'2019-04-19'}},{multi:true})
db.getCollection('wxtj_day').find({'custom_id':462,'create_data':{$gte:'1543593600000'}})
db.getCollection('wx_weixin_inf').find({weixinid:{'$exists':true,'$ne':''}}).forEach(
function(item){
db.getCollection('wxtj_dailyreport').update(
{"weixinid":item.weixinid},
{$set:{"custom_type":item.custom_type}
},false,true)
}
)
db.getCollection('wxtj_dailyreport').aggregate([
{'$match':{'create_date':'2019-03-10','company_id':102}},
{'$group':{
'_id':{'channel_name':'$channel_name'},
'company_id':{'$last':'$company_id'},
'is_auto_matic':{'$last':'$is_auto_matic'}
}
},
])
db.getCollection('membership_102').find({'company_id':102,'member_id':{$in:[44166, 26068]},
'total_recharge':{$gt:0},
'total_consumption':{$gt:0}})
db.getCollection('consumption').aggregate([
{'$match':{'company_id':102}},
{'$group':{
'_id':{'member_id':'$member_id'}
}
},
])
db.getCollection('membership_102').find({$and:[{'company_id':102},
{$or:[{'total_recharge':{$gt:0}},
{'total_consumption':{$gt:0}},
{'member_id':{$in:[44166]}}
]
}]
})