我有一份文件:
{
'name':'XYZ',
'address':'Street 21',
'phone': {
'home': [123456, 456123]
},
'qualification': {
'primary': [
['AB','75'],
['CD','80'],
['EF','50']
]
}
}
简单查询就像:
n = collection.find({'name':'XYZ'})
我可以使用'phone.home'
子文档键上的列表来获取文档,如下所示:
list1 = [123456]
n = collection.find({'phone.home':{'$in': list1}})
我被困在如何使用qualification
密钥查询集合。假设我有' AB'或者' 75' (一次只有其中一个),我无法弥补查询,例如我只有以下list1:
list1 = ['AB']
n = collection.find({'qualification.primary':{'$in':list1}})
这绝对不能给我想要的结果。任何指导将不胜感激!
答案 0 :(得分:3)
使用$elemMatch
两次查询:
db.collectionName.find(
{
"qualification.primary":{ "$elemMatch": { "$elemMatch":{ "$in": ["AB"] }}}
},
{ "qualification.primary.$":1 }
)