mongodb 使用 $in 查询列表列表

mongodb query using $in for list of lists

我有一个文档为:

{
    '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'(一次只有一个),我无法进行查询,例如我只有以下列表 1:

list1 = ['AB']

n = collection.find({'qualification.primary':{'$in':list1}})

这绝对不是我想要的结果。任何指导将不胜感激!

使用$elemMatch两次查询为:

db.collectionName.find(
    {
      "qualification.primary":{ "$elemMatch": { "$elemMatch":{ "$in": ["AB"] }}}
    },
    { "qualification.primary.$":1 }
)