从猫鼬中的数组对象中选择特定项目

时间:2021-06-05 07:35:04

标签: arrays mongodb mongoose mongodb-query aggregation-framework

我有一个 mongoDB 对象等:

[
  {
    "items": [
      {
        "title": "hello",
        "options": [
          {
            "value": "A",
            "image": "img1",
            "des": "des1"
          },
          {
            "value": "B",
            "image": "img2",
            "des": "des2"
          },
          
        ]
      }
    ]
  }
]

当我从集合中检索数据时,我只想从 value 数组的 options 中检索 items 键。

输出应如下所示:

{
 "items":[
  {
     "options" :[
       {  "value" :"A" },
       {  "value" :"B" },
   ]
  }
 ]
}

我该怎么做?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

db.collection.find({}, { "items.options.value": 1})

这是工作示例:https://mongoplayground.net/p/FqDaQ7Q-y-Y

或者你可以这样做:

db.collection.aggregate([
  {
    "$project": {
      "items.options.value": 1
    }
  }
])

这是工作示例:https://mongoplayground.net/p/jPFYtXYBvpI