我在 MongoDB 中有一个产品的 SKU 数组,我想按以下方式对其进行排序。我用 Map 和 set 尝试过它,但它只返回唯一的值。我想要来自 API 的这个响应。我怎样才能做到这一点。我已经用递归函数 parentId 为类别做了它,但这很棘手。
Product = {
...
Skus[
{
skuId: "Boo"
name: "Foo"
color: "red"
size: "small"
},
{
skuId: "Moo"
name: "Foo"
color: "red"
size: "large"
},
{
skuId: "Roo"
name: "Soo"
color: "yellow"
size: "small"
},
{
skuId: "Yoo"
name: "Hoo"
color: "red"
size: "medium"
},
}
我想这样安排SKU
Product = { ...
Skus: [
{red: [small, medium, large]}]
我想按 SKU 的颜色过滤产品,因为我想创建一个过滤器。
要使用 Moongoose 获得结果,您可以在控制器中对您的模型使用此处使用的相同查询。
例如:
YourModel.aggregate([{
"$unwind": "$Skus"
},
{
"$group": {
"_id": "$Skus.color",
"size": {
"$addToSet": "$Skus.size"
}
}
},
{
"$replaceRoot": {
"newRoot": {
"$arrayToObject": [
[
{
"k": "$_id",
"v": "$size"
}
]
]
}
}
}])
.then(result => {})
.catch(e => {})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句