使用数组内对象中的键值过滤数据

阿里拉希德

我在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用javascript过滤数组对象的数组对象内的数据

使用所需键值列表过滤对象数组

对象键值在数组中时如何过滤数组

尝试获取对象数组中对象内对象的键值的长度

如何使用过滤器搜索数组中对象的多个键值?

如何从属性中的键值对过滤对象数组

使用数组中的键值对创建对象

在数组内过滤数据并返回用组过滤的对象

根据条件从数组对象中的键值对中获取数据

如何在Java中获取数组内对象的键值

如何使用PowerShell从数组JSON内的对象获取键值?

如何使用Javascript中的键数组过滤键值字典?

如何从多个对象数组中过滤数据

使用javascript根据数组的其他对象中的其他键值对验证重复键值对的对象数组

如何使用数组 .filter() 在 JSON 对象数组中搜索键值

如何使用lodash过滤对象数组的数据

过滤javascript中数组内对象内的数组

如何通过对象数组中的键值合并或合并数据?

从对象数组中查找键值

从对象数组中拉出一个键值对的数组,并基于另一个键值对进行同时过滤

根据Javascript中数组内对象数组的条件进行过滤

使用 JavaScript 对象数组中的键值总和进行分组

使用javascript将键值从对象数组中剥离

使用特定键值从数组中删除所有对象

使用Lodash从键值对数组中创建对象

使用 nodejs 在对象数组中查找特定键值

使用键值组合数组中的对象值

如何使用javascript过滤对象数组中的对象数组?

过滤和删除json数组中的键值