【问题标题】:MongoDB find query with nested documents [duplicate]MongoDB查找带有嵌套文档的查询[重复]
【发布时间】:2017-09-06 19:13:46
【问题描述】:

我的 MongoDB 中有以下文档结构:

[{
  "_id": "59afce079af65f48de8fb609",
  "some_fields": "...",
  "members": [
    {
      "some_fields": "...",
      "device_id": "7FD45D19-F746-4293-A410-60B485E617F2",
      "_id": "59afce079af65f48de8fb60a"
    },
    {
      "some_fields": "...",
      "device_id": "7AC1635B-3E39-4F43-A4D4-4927FA072F89",
      "_id": "59afd01cff27894e8237eb2d"
    }
  ]
}]

如何使用 Mongoose 的 find 获取 documents which members contain object where device_id == "given_id"

【问题讨论】:

标签: node.js mongodb mongoose mongoose-schema


【解决方案1】:

试试这个:

使用 elemMatch:

db.collection.find({members: {$elemMatch: {device_id:'your ID'}}})

【讨论】:

  • 你不需要“$elemMatch”。简单的"dot notation" 就可以了。真正具有破坏性的是这种错误信息。
  • @NeilLunn 使用 elemMatch 他还可以比较多于 1 个元素..
  • 您只有“需要” $elemMatch 多个条件。这只是一个单一条件。不这样想的人是一个真正的问题。当您阅读它时,文档实际上非常清楚。你有两个链接,所以我建议你自己阅读。
  • 顺便说一句。不要假设,因为我评论说我是投反对票的人。不是我的风格。我刚刚更正了错误陈述的内容。你只会因为“完全不正确”的答案而遭到我的反对。
  • @NeilLunn 不,不。如果有人反对我的帖子,我不会认真对待。不同的人会有不同的看法。
猜你喜欢
  • 2021-02-25
  • 2016-08-16
  • 2016-07-01
  • 2021-11-12
  • 2018-03-09
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多