查询产品id不存在与数组中的集合:
db.user.find({"product_id":{"$nin":[18,8,7,23,17,94,95,1]}})
任务A:在panel_members集合中搜2000条项目号为5201,创建时间大于1547558613,小于1547708036,并且状态值为2的人,根据进行访问设备进行分组,并且显示人数大于700人的组
db.panel_members.aggregate([
{'$match':{'project_id':{'$eq':5201},'created_time':{'$gt':1547558613,'$lt':1547708036},'status':{'$eq':2}}},
{'$project':{'_id':0,'platform':1}},
{'$limit':2000000},
{'$group':{'_id':'$platform','count':{'$sum':1}}},
{'$match':{'count':{'$gt':700}}} //并且显示人数大于700人的组
])
任务A结果:
{
"_id" : "ipad",
"count" : 701
}
{
"_id" : "android",
"count" : 702
}
{
"_id" : "ios",
"count" : 729
}
任务B:搜索只显示_id,product_cs,product_name三个字段,#条件为:_id=4445
db.project.aggregate([
{'$match':{'_id':{'$eq':4445}}},
{'$project':{'_id':1,'product_cs':1,'product_name':1}},
])
任务结果B
{
"_id" : NumberInt(4445),
"product_name" : "conceptct",
"product_cs" : [
"leader@cloudxink.com",
"chenjunlong@cloudxink.com"
]
}
任务C:基于任务B的结果获取如下结果:
{
"_id" : NumberInt(4445),
"product_name" : "conceptct",
"product_cs" : "leader@cloudxink.com"
}
{
"_id" : NumberInt(4445),
"product_name" : "conceptct",
"product_cs" : "chenjunlong@cloudxink.com"
}
则需要unwind查询
db.project.aggregate([
{'$match':{'_id':{'$eq':4445}}},
{'$project':{'_id':1,'product_cs':1,'product_name':1}},
{'$unwind':'$product_cs'},
])
下面再赠送你一条:忽略第一条
db.project.aggregate([
{'$match':{'_id':{'$eq':4445}}},
{'$project':{'_id':1,'product_cs':1,'product_name':1}},
{'$unwind':'$product_cs'},
{'$skip':1}
])
一次性更新多条文档
#批量更新整个数组
db.product.update({},{"$set":{"product_cs":[
{"name" : "乔峰", "email" : "qiaofeng@163.com"},
{"name" : "段誉","email" : "duanyu@163.com"},
{"name" : "虚竹","email" : "xuzhu@163.com"},
]}},{multi:true})
#更新多维数组中的某个键值 (更新_id=2这条数据endlink下面url的值)
db.panel.update({"_id":2},{$set:{"endlink.url":"baidu.com"}})
#删除多维数组中的某条数据
#删除_id=2这条数据里面endlink下面status的字段其值为finish的记录
db.panel.update({"_id":2},{"$unset":{"endlink.status":"finish"}})
给oa_member中的project_id创建索引
db.oa_member.createIndex({"project_id":1})
在服务器上进行导出product_questoin集合
mongoexport --collection product_question --host "rs-yili-test/11.11.11.11:27017,22.22.22.22:27017,33.33.33.33:27017" -u root -p Cloud2017 --db cloudxink_it --authenticationDatabase admin --out product_question.json
#在服务器上进行导入mail集合
mongoimport --collection mail --host "rs-yili-test/11.11.11.22:27017,22.22.22.22:27017,33.33.33.33:27017" -u root -p Cloud2017 --db cloudxink_it --authenticationDatabase admin --file mail.json