【问题标题】:How to return a matched object inside an array in mongoose如何在猫鼬的数组中返回匹配的对象
【发布时间】:2021-03-09 19:03:30
【问题描述】:
{
  "_id": 36546b46bbh343..,
  "name": "Mike",
  "Friends: [
    {"name":"lora","age":23},
    {"name":"test","age":26}
  ]
}

我知道如果我们这样做了

dbname.find({
  Friends:{
    $elemMatch:{
      "name": "test", 
      "age": 26
    }
  }
})

它将返回包含所有对象的整个文档。但是我一直在寻找的是有什么方法可以让我只得到与之匹配的对象。

【问题讨论】:

  • 你做对了,使用$elemMatch是怎么回事,我看不出有什么问题
  • 但是为什么是dbname.find而不是someCollection.find?
  • @datdinhquoc 只是在我的脑海中想到了这一点。无论如何是的,这个查询是正确的,但它返回条件匹配的整个文档,而我只想要匹配的对象。你能想到什么吗?

标签: javascript node.js mongodb mongoose


【解决方案1】:

试试这个

 db.collection.find({
      Friends: {
        $elemMatch: {
          "name": "test",
          "age": 26
        }
      }
    },
    {
      "Friends.$": 1
    })

Demo

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2022-01-24
  • 1970-01-01
  • 2021-05-08
  • 2014-07-29
  • 2016-04-08
相关资源
最近更新 更多