如何从mongodb集合中读取特定的键值对

如何从mongodb集合中读取特定的键值对,mongodb,mongodb-query,Mongodb,Mongodb Query,如果我有一个mongodb集合用户如下: { "_id": 1, "name": { "first" : "John", "last" :"Backus" }, } 如何在不提供\u id或任何其他引用的情况下从中检索name.first。此外,是否可能仅拉动'name^就可以得到嵌入密钥的数组(本例中的第一个和最后一个)?如何做到这一点 db.users.find({“name.first”})对我不起作用,我得到了一个: SyntaxError“缺少:在属性id

如果我有一个mongodb集合
用户
如下:

{
  "_id": 1,
  "name": {
    "first" : "John",
    "last" :"Backus"
  },
}
如何在不提供
\u id
或任何其他引用的情况下从中检索
name.first
。此外,是否可能仅拉动'name^就可以得到嵌入密钥的数组(本例中的第一个和最后一个)?如何做到这一点

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

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


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

在您的例子中,db.users.find({name.first})将给出一个错误,因为它应该是一个搜索条件

要获取json名称,请执行以下操作:
db.users.find({},{name:1
})

如果您只想获取name.first

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

Mongodb文档链接获取所有记录详细信息: db.users.find({“name.first”:“}) 要仅获取名称或特定字段,请执行以下操作: find({{},“name.X”:“”}); 其中X可以是第一个,也可以是最后一个

如果需要遍历数组内部的键值对,可以使用点(.)表示法
db.users.find({“name.first._id:“xyz”});

至少在mongo shell中使用它时,我需要在“name.first”周围加引号,以防只获取name.first