9

如果我有一个users这样的 mongodb 集合:

{
  "_id": 1,
  "name": {
    "first" : "John",
    "last" :"Backus"
  },
}

如何在name.first不提供_id或任何其他参考的情况下从中检索。此外,是否有可能仅拉出 `name^ 可以给我嵌入键的数组(在这种情况下是第一个和最后一个)?怎么可能呢?

db.users.find({"name.first"})对我不起作用,我得到了:

SyntaxError "缺少:在属性 id (shell) 之后:1

4

2 回答 2

29

的第一个参数find()是查询条件,而该find()方法的第二个参数是投影,它采用文档的形式,其中包含字段列表,以便从结果集中包含或排除。您可以指定要包含的字段(例如{ field: 1 })或指定要排除的字段(例如{ field: 0 })。_id除非明确排除,否则该字段是隐含的。

在您的情况下, db.users.find({name.first}) 将给出错误,因为它应该是搜索条件。

获取名称 json : db.users.find({},{name:1})

如果您只想获取 name.first

db.users.find({},{"name.first":1})

MongoDB 文档链接在这里

于 2012-12-18T06:16:17.177 回答
0

获取所有记录详细信息: db.users.find({"name.first":""}) 仅获取名称或特定字段: db.users.find({{},"name.X":" "}); 其中 X 可以是第一个,最后一个。

如果需要在数组内部遍历键值对作为 db.users.find({"name.first._id":"xyz"});

于 2018-03-07T10:24:42.840 回答