【问题标题】:Mongoose Return array from object value in array of object without JS workonMongoose从没有JS工作的对象数组中的对象值返回数组
【发布时间】:2020-06-17 22:20:23
【问题描述】:

我想转换这个对象数组

 [{ category:"AAA" },{ category:"BBB" },{ category: "CCC" }]

进入这个 ["AAA","BBB","CCC"] 。我不想在后端过滤或使用任何数组函数,而是从 mongoDB 本身。

【问题讨论】:

  • 你尝试过这样的事情吗:Group.find({program: {$in: [...]}}).lean().select('category')

标签: javascript arrays mongodb mongoose aggregation-framework


【解决方案1】:

db.collection.distinct('category')

应该为您提供该字段的唯一值数组。

【讨论】:

    【解决方案2】:

    $map 将数组中的对象键映射到键值数组。然后使用 $addFields 转换输出

    
    arr = [{ category:"AAA" },{ category:"BBB" },{ category: "CCC" }];
    db.collection.aggregate([
        {
            "$addFields": {
                "exclude": {
                    "$map": {
                        "input": "$arr",
                        "as": "el",
                        "in": "$$el.category"
                    }
                }
            }
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2012-05-30
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 2014-07-09
      • 2020-11-11
      • 2017-10-26
      • 2021-04-09
      相关资源
      最近更新 更多