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

Posted

技术标签:

【中文标题】从猫鼬中的数组对象中选择特定项目【英文标题】:Select specifics items from array objects in mongoose 【发布时间】:2021-08-23 02:36:54 【问题描述】:

我有一个 mongoDB objetc,例如:

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

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

输出应该是这样的:


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

我该怎么做?

【问题讨论】:

使用投影 "items.options.value": 1 查看更多关于projection的信息。 turivishal 如果您指定查询,它将对我有所帮助。谢谢 你可以按照我的评论使用投影,如果你想使用聚合,请参阅$project 如果您在评论中看到附加链接,它易于使用,只需按照文档中的说明进行操作即可。不难理解我想你只需要使用 "items.options.value": 1 投影简单。 好的,我正在尝试 【参考方案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

【讨论】:

以上是关于从猫鼬中的数组对象中选择特定项目的主要内容,如果未能解决你的问题,请参考以下文章

如何从猫鼬中获取类型化的对象

你如何从猫鼬中删除模型?

是否有一种解决方案允许从猫鼬中完全相同的快照中读取多个集合?

如何从猫鼬的另一个集合中计算文档?

将订单集合中的订单总和添加到猫鼬中的用户集合

如何从猫鼬的数组中找到对象