MongoDB 嵌套类型的find 方法示范

6 min read

假设我们有一个名为 "users" 的 MongoDB 集合,其中包含以下文档:

{
  "_id": ObjectId("60ebca6c4d0f8469674e0ff4"),
  "name": "Alice",
  "age": 25,
  "address": {
    "city": "New York",
    "state": "NY",
    "zip": "10001"
  },
  "hobbies": ["reading", "traveling", "photography"]
}

现在,我们想通过地址中的城市和州来查找用户。为此,我们可以使用 MongoDB 的 find 方法和嵌套查询:

db.users.find({ "address.city": "New York", "address.state": "NY" })

该查询将返回所有居住在 New York, NY 的用户。注意,我们使用点号来引用嵌套字段。

我们还可以使用 $in 操作符来查找多个城市的用户:

db.users.find({ "address.city": { "$in": ["New York", "San Francisco"] } })

这个查询将返回所有居住在 New York 或 San Francisco 的用户。

最后,我们可以通过查询嵌套数组来查找特定爱好的用户:

db.users.find({ "hobbies": "reading" })

这将返回所有爱好阅读的用户。注意,数组字段不需要使用点号引用。