我一直在经历数组内部的mongodb查询。我已经得到了他们给我的例子来查询单个数组。但是如果我有两个不同的数组并想将它们组合成单个查询,这将如何工作?例如item1和item2是两个不同的数组。在两个不同的数组中查询mongodb
# example given in mongodb document
db.inventory.find({ qty: { $in: [ 5, 15 ] } })
# example of query of what I am trying achieve query two arrays
db.inventory.find({ item1: { $in: [ item1_value ] } { item2: { $in: [ item2_value ] } })
MongoDB的参考文档:https://docs.mongodb.com/manual/reference/operator/query/in/
我还要提到的是,我使用MongoDB中得到的命令是什么样子的想法,但最终这个命令应该pymongo工作,因为这个命令会通过pymongo执行。
# correct query example as given by Moshe
db.inventory.find({
$or: [
{ item1: { $in: [ item1_value ] }},
{ item2: { $in: [ item2_value ] }}
]
});
你应该注意的是,如果你的'itemX_value'实际上只有单一的价值观,而不是数组本身,那么你不需要'$ in'只是为了搜索一个数组的文档属性。所以除非'$ in'的参数需要成为一个“列表”,那么你只需要做。 '.find({'$ or':[{'item1:1},{'item2':2}]})'。 (''或'':[{'item1':{'$ in':[1,2]}},{'item2':{'$ in' :[1,2]}}]})'。 MongoDB并不关心“item1”实际上是一个数组本身,因为它只会搜索它的成员以获得“单数”提供的值。是的python语法是相同的 –
感谢您的澄清。我会牢记这一点。 – Matt