2
我有两个集合,一个模型和一个论文集。我需要能够匹配来自两者的字段。他们有一个共同的字段,称为引用,其中包含一个标识符。pymongo - 如何匹配查找?
我想匹配的文件已经下
“作家”:“米利M”从这些文件中收集 “celltypes”:从型号上收集海马CA3区锥体细胞“
这里我的代码是什么样的:
pipeline = [{'$lookup':
{'from' : 'models',
'localField' : 'references',
'foreignField' : 'references',
'as' : 'cellmodels'}},
{'$match':
{'authors' : 'Migliore M', 'cellmodels.celltypes' : 'Hippocampus CA3 pyramidal cell'}},
]
for doc in (papers.aggregate(pipeline)):
pprint (doc)
我没有得到任何结果。
我注意到,如果我没有在匹配参数中调用cellmodels.celltypes,它会找到与Migliore M相匹配的论文。我怎样才能让它匹配celltype:'海马CA3锥体细胞'模型集合在这个查询中?
你只需要'{ '$开卷': '$ cellmodels'}''之前$ match'。 – Veeram
不完全确定展开做了什么,但我能够得到它的工作 – Kevin
查找返回数组,因此展开将数组转换为对象,您可以应用比较嵌入字段。 – Veeram