MongoDB:如何通过嵌套文档中的ID查找文档

3天

给定这样的集合:

[
  {
    "_id" : ObjectId("5546329a470000850084a621"),
    "name": "Joe",
    "surname": "Smith",
    "accounts": [
      {
        "_id" : ObjectId("5546329a470000850084a655"),
        "default": true,
        "status" : "approved",
        "activationTime" : ISODate("2013-05-03T14:37:15.025Z")
      },
      {
        "_id" : ObjectId("5546329a470000850084a688"),
        "default": true,
        "status" : "approved",
        "activationTime" : ISODate("2014-06-03T14:37:15.025Z")
      }
    ]
  },
  {
    "_id" : ObjectId("9546329a470079850084a622"),
    "name": "Jimmy",
    "surname": "Brown",
    "accounts": [
      {
        "_id" : ObjectId("5546329a470790850084a651"),
        "default": true,
        "status" : "suspended",
        "activationTime" : ISODate("2015-02-03T14:37:15.025Z")
      },
      {
        "_id" : ObjectId("5546329a470019850084a611"),
        "default": true,
        "status" : "approved",
        "activationTime" : ISODate("2015-04-03T14:37:15.025Z")
      }
    ]
  },
]

...我如何找到文件accounts.N._id我已经尝试过了...

db.users.find(
  {},
  {
    "accounts": 0, "accounts": {
      "$elemMatch": { "_id" : ObjectId("5546329a470019850084a611"), "default": true }
    }
  }
)

...但是它不起作用,因为我只得到_id所有文档中的:

{ "_id" : ObjectId("5546329a470000850084a621") }
{ "_id" : ObjectId("9546329a470079850084a622") }

我想念什么吗?

编辑

我实际需要的结果是这样的:

{
  "_id" : ObjectId("9546329a470079850084a622"),
  "name": "Jimmy",
  "surname": "Brown"
}

例如,我需要查找accounts.N._id但不显示嵌套文档本身。

萨尔瓦多·达利

使用点符号

当字段包含嵌入式文档时,查询可以指定嵌入式文档上的完全匹配,也可以使用点符号指定嵌入式文档中各个字段的匹配。

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
})

如果只需要输出具有_id的数组部分,则需要在投影中使用dollar

位置$运算符将查询结果中的内容限制为仅包含与查询文档匹配的第一个元素。

您的查询将类似于:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
}, {
   "accounts.$.": 1
})

PS,如果您需要修改后的问题中的输出,请使用以下命令:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
 }, {
   accounts : 0
 })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过ID查找嵌套文档

来自分类Dev

通过ID查找嵌套文档

来自分类Dev

通过ID查找MongoDB文档

来自分类Dev

通过ID查找MongoDB文档

来自分类Dev

如何通过ID查找mongodb文档而不进行搜索?

来自分类Dev

Pymongo在子文档中通过_id查找

来自分类Dev

Pymongo在子文档中通过_id查找

来自分类Dev

如何在嵌套文档中查找记录?

来自分类Dev

如何使用Java在MongoDB 3.3中通过_id删除文档

来自分类Dev

是否有任何查询通过检查mongoDb中嵌套的嵌入式文档的字段来查找文档

来自分类Dev

如何通过 .net mongoDb 驱动程序通过嵌套属性获取 mongoDb 中的文档

来自分类Dev

通过_id node.js查找mongodb文档mongodb本机

来自分类Dev

如何通过子文档数组中的数据查找文档

来自分类Dev

如何在mongodb中查询嵌套文档?

来自分类Dev

如何转义reqexp在MongoDB中查找文档?

来自分类Dev

如何使用文档ID从mongoDB集合中删除文档?

来自分类Dev

在嵌套对象的数组字段中按ID查找子文档

来自分类Dev

如何通过ObjectId查找文档?

来自分类Dev

mongodb中的嵌套文档聚合

来自分类Dev

如何通过Criteria + Mongoose / MongoDB查找子文档

来自分类Dev

MongoDB 如何通过搜索混合模式字段来查找文档?

来自分类Dev

在MongoDB查询中,如何获取_id包含的嵌套文档中的字段

来自分类Dev

如何在mongodb中查找文档并使用聚合查找属性?

来自分类Dev

在mongodb集合中查找文档对

来自分类Dev

mongoDB查询以嵌套数组查找文档

来自分类Dev

MongoDB查找然后查询嵌套文档

来自分类Dev

通过ID查找文档并在Mongoose中过滤子数组

来自分类Dev

查找文档时如何防止MongoDB返回对象ID?

来自分类Dev

查找文档时如何防止MongoDB返回对象ID?

Related 相关文章

热门标签

归档