2017-05-31 75 views
0

支持我的文檔結構如下找到一個查詢到一對多的關係

var order = { 
order_id : "1234", 
plan_name: "Basic plan", 
app_id:["app-id-1","app-id-2"] 
} 

它有一對多的關係結構。 我插入它在蒙戈這樣

db.orders.insert(order) 

我還創建了order_idapp_id指數。 現在,我有一個app_id,我想找到它的order_id

如何編寫查詢找到 我知道我需要使用 db.orders.find({"app_id":""}),但APP_ID是一個數組。 還是有其他技術我失蹤?

+1

像'db.orders.find({APP_ID:{$於:「APP-ID- 1「,」app-id-2「]}}'More here https://docs.mongodb.com/manual/reference/operator/query/in/#use-the-in-operator-to-match-valu ES-在-一個陣列 – Veeram

回答

0

您可以通過多種方式在數組上進行查詢。 如果你想找到與APP-ID-1的所有訂單爲APP_ID數組中的值,你可以簡單地查詢

app_id: "app-1-id" 

這將返回該有自己的數組中該值的所有訂單。 如果你想找到其中有一組應用程序ID的所有訂單可以查詢

app_id: {$all: <array_of_app_ids>} 

爲了找到其中只包含一組特定ID的所有訂單,並沒有其他人可以配對$所有$大小

app_id: {$all: <array_of_app_ids>, $size: <array_of_app_ids.length>} 

,但如果你通過一個單一的值,MongoDB的將返回該有自己的數組中的值的所有條目