How to read a specific key-value pair from mongodb collection

非 Y 不嫁゛ 提交于 2019-12-09 18:10:26

问题


If I have a mongodb collection users like this:

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

How do I retrieve name.first from this without providing _id or any other reference. Also, is it possible that pulling just the `name^ can give me the array of embedded keys (first and last in this case)? How can that be done?

db.users.find({"name.first"}) didn't work for me, I got a:

SyntaxError "missing: after property id (shell):1


回答1:


The first argument to find() is the query criteria whereas the second argument to the find() method is a projection, and it takes the form of a document with a list of fields for inclusion or exclusion from the result set. You can either specify the fields to include (e.g. { field: 1 }) or specify the fields to exclude (e.g. { field: 0 }). The _id field is implicitly included, unless explicitly excluded.

In your case, db.users.find({name.first}) will give an error as it is expected to be a search criteria.

To get the name json : db.users.find({},{name:1})

If you want to fetch only name.first

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

Mongodb Documentation link here




回答2:


To fetch all the record details: db.users.find({"name.first":""}) To fetch just the name or specific field: db.users.find({{},"name.X":""}); where X can be first, last .

dot(.) notation can be used if required to traverse inside the array for key value pair as db.users.find({"name.first._id":"xyz"});



来源:https://stackoverflow.com/questions/13927295/how-to-read-a-specific-key-value-pair-from-mongodb-collection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!