一架梯子,一头程序猿,仰望星空!
MongoDB面试题 > 内容正文

如何在 MongoDB 中查询嵌套文档的字段?


问题简答

在 MongoDB 中查询嵌套文档的字段可以使用点号(.)来访问嵌套字段。

问题详解:

例子

假设我们有一个名为 “users” 的集合,其中包含了一个嵌套的地址字段

{
  "_id": ObjectId("5a983d844f758fc0e8f3c3e0"),
  "name": "John",
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  }
}

要查询地址字段中的城市字段,可以使用点号(.)访问嵌套字段,如下所示

db.users.find({"address.city": "Anytown"})

这个查询会从集合 “users” 中查询地址字段中城市为 “Anytown” 的文档,返回一个结果集。在结果集中,只有包含匹配条件的文档会被返回。

注意:如果嵌套字段名中包含点号(.)或者美元符号($),可以使用引号将字段名括起来

db.users.find({"address.\"city.name\"": "Anytown"})

这个查询会从集合 “users” 中查询地址字段中 “city.name” 为 “Anytown” 的文档。