1
MongoDB的合計結果我最近提出這個問題,幫助我獲得的數組,目前已經在聚合MongoDB中查詢得到的結果(MongoDB Aggregate Array with Two Fields)有兩個不同的密鑰
我的問題是要獲得合併兩個不同的密鑰。
我有這一個產品集合與一般產品:
{
"_id" : ObjectId("554b9f223d77c810e8915539"),
"brand" : "Airtex",
"product" : "E7113M",
"type" : "Fuel Pump",
"warehouse_sku" : [
"1_5551536f3d77c870fc388a04",
"2_55515e163d77c870fc38b00a"
]
}
而且我有以下的兒童產品(它有多個一般產品就可以了)
{
"_id" : ObjectId("55524d0c3d77c8ba9cb2d9fd"),
"brand" : "Performance",
"product" : "P41K",
"type" : "Fuel Pump Component",
"general_products" : [
ObjectId("554b9f123d77c810e891552f"),
ObjectId("554b9f143d77c810e8915530"),
ObjectId("554b9f173d77c810e8915533"),
ObjectId("554b99b83d77c810e8915436"),
ObjectId("554b9f2e3d77c810e8915549")
],
"warehouse_sku" : [
"1_555411043d77c8066b3b6720",
"1_555411073d77c8066b3b6728"
]
}
這裏我的問題是我希望使用_id和內部子產品的一般產品符合特定的warehouse_sku模式。期望的結果是這樣的:
{ "_id" : ObjectId("554b9f2e3d77c810e8915549") }
{ "_id" : ObjectId("554b99b83d77c810e8915436") }
{ "_id" : ObjectId("554b9f173d77c810e8915533") }
{ "_id" : ObjectId("554b9f143d77c810e8915530") }
{ "_id" : ObjectId("554b9f123d77c810e891552f") }
{ "_id" : ObjectId("554b9f223d77c810e8915539") }
我已經由多個查詢:
1)
db.products.aggregate([
... {$match:{warehouse_sku: /^1/ }},
... {$unwind:"$general_products"},
... {$group:{_id: "$general_products"}}
... ])
但是從一般產品的_id不是它:
{ "_id" : ObjectId("554b9f2e3d77c810e8915549") }
{ "_id" : ObjectId("554b99b83d77c810e8915436") }
{ "_id" : ObjectId("554b9f173d77c810e8915533") }
{ "_id" : ObjectId("554b9f143d77c810e8915530") }
{ "_id" : ObjectId("554b9f123d77c810e891552f") }
2)
db.products.aggregate([
... {$match:{warehouse_sku: /^1/ }},
... {$group:{_id: "$_id"}}
... ])
,但給我一般和兒童產品的_id [不希望它]但不是_id的從普通產品的子產品內部:
{ "_id" : ObjectId("55524d0c3d77c8ba9cb2d9fd") }
{ "_id" : ObjectId("554b9f223d77c810e8915539") }
的MongoDB的主查詢...感謝您的幫助 –
@technology_dreamer不用擔心:-) – chridam