我在閱讀MongoDB in Action,當談論查詢文檔中的多對多關係時,我很難理解他如何編寫他的示例查詢(使用Ruby驅動程序) 。在MongoDB中查詢多對多關係
查詢是查找特定類別中的所有產品,其中有products
和category
集合。作者說,「要查詢的園藝工具類別中的所有產品,代碼很簡單:
db.products.find({category_ids => category['id']})
產品文檔是這樣的:
doc =
{ _id: new ObjectId("4c4b1476238d3b4dd5003981"),
slug: "wheel-barrow-9092",
sku: "9092",
name: "Extra Large Wheel Barrow",
description: "Heavy duty wheel barrow...",
details: {
weight: 47,
weight_units: "lbs",
model_num: 4039283402,
manufacturer: "Acme",
color: "Green"
},
category_ids: [new ObjectId("6a5b1476238d3b4dd5000048"),
new ObjectId("6a5b1476238d3b4dd5000049")],
main_cat_id: new ObjectId("6a5b1476238d3b4dd5000048"),
tags: ["tools", "gardening", "soil"],
}
和類別的文檔是這樣的:
doc =
{ _id: new ObjectId("6a5b1476238d3b4dd5000048"),
slug: "gardening-tools",
ancestors: [{ name: "Home",
_id: new ObjectId("8b87fb1476238d3b4dd500003"),
slug: "home"
},
{ name: "Outdoors",
_id: new ObjectId("9a9fb1476238d3b4dd5000001"),
slug: "outdoors"
}
],
parent_id: new ObjectId("9a9fb1476238d3b4dd5000001"),
name: "Gardening Tools",
description: "Gardening gadgets galore!",
}
能有人請解釋多一點給我嗎?我仍然不明白他怎麼寫的查詢:(
謝謝大家。
感謝您的詳細解釋。 Mongodb in Action書中使用Ruby代碼來處理這樣的語言示例。 – Bohn
那麼在他的例子中'id'有特殊的含義,必須按原樣傳遞?這就是我感到困惑的地方。 – Bohn
不能看到書,它看起來像'category_id'可能是一個數組/變量,作者用他們想要的類別的id填充(我上面的答案中的第1步)。我不認識Ruby,所以很難知道如何解釋代碼。感謝你的接納 :) – chrisbunney