我一直在經歷數組內部的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