MongoDB从数组中的每个对象中提取相同的字段

我正在执行聚合查询,最终得到以下包含许多对象的数组。

MongoDB从数组中的每个对象中提取相同的字段

如何从上述每个对象中提取字段 _id

预期输出将是每个对象内每个 _id 的数组

tianlong253 回答:MongoDB从数组中的每个对象中提取相同的字段

要将每个 _id 的数组放入您的对象中,您可以使用 $map

Map 类似于 JS 地图,请检查:

const array = [
  {"id": 1,"other": ""},{"id": 2,{"id": 3,{"id": 4,{"id": 5,"other": ""}]
console.log(array.map(m => m.id))

您可以使用 mongo $map 将这种方法引入 $project 阶段,如下所示:

通过此聚合,您将创建一个名为 array 的字段,其中使用 $map 返回 array.id,因此它会创建一个包含所需 ID 的数组。

db.collection.aggregate([
  {
    "$project": {
      "_id": 0,"array": {
        "$map": {
          "input": "$array","as": "a","in": "$$a.id"
        }
      }
    }
  }
])

示例here

本文链接:https://www.f2er.com/1572.html

大家都在问