[
{
"userid": "abcde",
"dates": {
"2-01-2015": {
"9-10": {
"ava": "yes",
"bookibg_id": "null"
},
"10-11": {
"ava": "yes",
"bookibg_id": "null"
}
},
"3-01-2015": {
"9-10": {
"ava": "no",
"bookibg_id": "null"
},
"10-11": {
"ava": "no",
"bookibg_id": "null"
}
}
}
},
{
"userid": "abcde",
"dates": {
"2-01-2015": {
"9-10": {
"ava": "yes",
"bookibg_id": "null"
},
"10-11": {
"ava": "no",
"bookibg_id": "null"
}
},
"3-01-2015": {
"9-10": {
"ava": "no",
"bookibg_id": "null"
},
"10-11": {
"ava": "no",
"bookibg_id": "null"
}
}
}
}
]
我对nosql db和mongodb相对较新。它有点令人困惑如何查询这些。 对于给定的db,我如何编写查询以生成结果: 查询:列出用户ID,使得在“2-01-2015”,“ava”在“9-10”处为“是”。 Plzz还解释了结果。
答案 0 :(得分:5)
你可以找到
db.coll.find({'dates.2-01-2015.9-10.ava': "yes"},{"userid":1,'_id':0})
此处为'dates.2-01-2015.9-10.ava':'yes'用于查找ava的值为yes,类似于从JSON对象访问值,第二个参数是用于仅从查询中获取用户ID {“userid”:1,'_ id':0}
输出将是
{ "userid" : "abcde" }
{ "userid" : "abcde" }
如果您删除第二个参数,您将根据第二个参数获得结果中的整个文档,您可以过滤所需的字段