|
|
|
มีใครเคยเขียน aggregation/lookup ของ MONGODB มั้งครับ สอบถามหน่อยครับ มี ตัวอย่างด้านใน |
|
|
|
|
|
|
|
มีใครเคยเขียน aggregation/lookup มั้งครับ
http://www.mongoing.com/docs/reference/operator/aggregation/lookup.html?fbclid=IwAR12W5w7tJbO_jnCY8Vdzf54EcFo-8_gv4LG6mZki_pG0QUAaEdptCnFiFM
คือ collection order มีข้อมูลดังนี้
Code
{ "_id" : 1, "item" : "abc", "price" : 12, "quantity" : 2 }
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1 }
collection inventory มีข้อมูลดังนี้
Code
{ "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }
{ "_id" : 4, "sku" : "jkl", description: "product 4", "instock" : 70 }
พอเขียนคำสั่งนี้เข้าไป
Code
db.orders.aggregate([
{
$lookup:
{
from: "inventory",
localField: "item",
foreignField: "sku",
as: "inventory_docs"
}
}
])
ได้ผลลัพธ์ดังนี้
Code
{
"_id" : 1,
"item" : "abc",
"price" : 12,
"quantity" : 2,
"inventory_docs" : [
{ "_id" : 1, "sku" : "abc", description: "product 1", "instock" : 120 }
]
}
{
"_id" : 2,
"item" : "jkl",
"price" : 20,
"quantity" : 1,
"inventory_docs" : [
{ "_id" : 4, "sku" : "jkl", "description" : "product 4", "instock" : 70 }
]
}
แต่ผลลัพธ์ที่ผมต้องการจริงๆ คือ ตัด inventory_docs ออกไปเลย ต้องการแค่ inventory_docs.descirption อ่ะครับ ให้อยู่ ระดับเดียวกันกับ _id, item, price, quantity ตามรูปด้านล่างครับ ต้องใช้คำสั่งไรหรอครับ
Code
{
"_id" : 1,
"item" : "abc",
"price" : 12,
"quantity" : 2,
"description": "product 1"
}
{
"_id" : 2,
"item" : "jkl",
"price" : 20,
"quantity" : 1,
"description" : "product 4"
}
Tag : PHP
|
|
|
|
|
|
Date :
2019-01-10 09:11:42 |
By :
nut_ch31 |
View :
3069 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
db.people.aggregate([
{
$lookup:
{
from: "department",
localField: "department_id",
foreignField: "_id",
as: "department"
}
},
{ $unwind: { path: "$department", preserveNullAndEmptyArrays: true }} ,
{
$project: {
"_id" : 1,
"name" : 1,
"username" : 1,
"email" : 1,
"address" : 1,
"phone" : 1,
"website" : 1,
"company" : 1,
"department_name" : "$department.name"
}
}
}
])
|
|
|
|
|
Date :
2019-01-10 15:12:14 |
By :
nut_ch31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|