Mongodb Mongo DB-如何在供应商的基础上获得集团产品?
我需要你的帮助。鉴于下面的结构,我需要查询 以获取给定供应商所有“产品”的方式记录Mongodb Mongo DB-如何在供应商的基础上获得集团产品?,mongodb,Mongodb,我需要你的帮助。鉴于下面的结构,我需要查询 以获取给定供应商所有“产品”的方式记录 { "supplier" : [ {"name" : "supplier 1", "products" : [ { "name" : "product 1" } { "na
{
"supplier" : [
{"name" : "supplier 1",
"products" : [
{ "name" : "product 1" }
{ "name" : "product 2" }
]
},
{
"name" : "supplier 1",
"products" : [
{ "name" : "product 3" }
]
},
{
"name" : "supplier 2",
"products" : [
{ "name" : "product 3" }
]
},
]
}
“供应商1”的最终文件应
如下所示(或类似)
结果应仅包含产品的唯一值。
对于这一点,什么是好的服务器端解决方案?提前谢谢。
$unwind
解构供应商
数组
$group
由供应商提供。名称
并制作产品的数组
$project
显示必填字段,$reduce
使用$concatarray
非常感谢!那很好用。我不知道$reduce/$concathArrays功能。那真的很有帮助!祝你圣诞快乐
{
"products" : [
{ "name" : "product 1" },
{ "name" : "product 2" },
{ "name" : "product 3" }
]
}
db.collection.aggregate([
{ $unwind: "$supplier" },
{
$group: {
_id: "$supplier.name",
products: { $push: "$supplier.products" }
}
},
{
$project: {
_id: 0,
name: "$_id",
products: {
$reduce: {
input: "$products",
initialValue: [],
in: { $concatArrays: ["$$this", "$$value"] }
}
}
}
}
])