Arrays 两个不同数组中的mongodb查询

Arrays 两个不同数组中的mongodb查询,arrays,mongodb,pymongo,Arrays,Mongodb,Pymongo,我一直在研究数组中的mongodb查询。我得到了他们提供的用于查询单个数组的示例。但是,如果我有两个不同的数组,并希望将它们组合到一个查询中,这将如何工作呢?例如,item1和item2是两个不同的数组 # example given in mongodb document db.inventory.find( { qty: { $in: [ 5, 15 ] } } ) # example of query of what I am trying achieve query two array

我一直在研究数组中的mongodb查询。我得到了他们提供的用于查询单个数组的示例。但是,如果我有两个不同的数组,并希望将它们组合到一个查询中,这将如何工作呢?例如,item1和item2是两个不同的数组

# 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参考文档:

我还应该提到,我正在使用mongodb来了解该命令的外观,但最终该命令应该适用于pymongo,因为该命令将通过pymongo执行

# correct query example as given by Moshe
db.inventory.find({ 
      $or: [ 
             { item1: { $in: [ item1_value ] }}, 
             { item2: { $in: [ item2_value ] }}
       ]
});
MongoDB“或”语法:


我认为你的回答是正确的,但当我把它作为一个查询运行时,我不断得到。。。好像语法没有完全终止命令一样。@Matt我的语法错了,我把
]
}
混在一起了,现在应该可以用了。嗯,这就是mongodb的致命之处。语法有点满了。我也试过,这似乎是同一个问题。看到。。。我认为{item1:{$in:[item1_value]}缺少一个括号,因为最外层的括号仅与$in之前的括号匹配。我关闭了它,但仍然看到了问题。非常感谢,我会花上几天的时间来找出此语法。这是一个小的语法错误,但很容易用您的示例来找出。我将用更新的synt在我的问题示例中显示您的答案ax.再次感谢。我很高兴能为您提供帮助。您应该注意,如果您的
itemX_值
实际上只是单个值,而不是数组本身,那么您不需要
$in
来搜索作为数组的文档属性。因此,除非
$in
的参数需要是一个“列表”,否则您只需要这样做。
.find({'$or':[{'item1:1},{'item2':2}]}
if for“参数列表”
.find({'$or':[{'item1':{'item1':{'item1':[1,2]},{'item2':{'in':[1,2]}}})
.MongoDB不在乎
'item1 item1
是否实际上是一个数组本身,因为它只会搜索其成员的“单数”提供的值。是的,python语法是相同的。我会记住这一点。
{ $or: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
db.inventory.find({ 
      $or: [ 
             { item1: { $in: [ item1_value ] }, 
             { item2: { $in: [ item2_value ] }
       ]
});