mongodb查找操作查询不起作用

时间:2013-11-14 10:05:32

标签: mongodb

mongodb的新手

db.myjobs.find()获得以下结果

{ "_id" : ObjectId("52849a7b8dd61980d1b49b87"), "browser" : "FF20", "id" : "70", "jobs" : [ { "_id" : "5281d1680d0f2f2aaec5787e",   "date" : "Tue Nov 12 2013 12:27:44 GMT+0530 (IST)", "id" : "29" } ],  "os" : "VM-WIN7-64", "server" : "172.16.2.120" }

从上面的结果我必须根据"os" : "VM-WIN7-64"内的id=29

返回jobs

我正在使用以下代码,但这不正确。

db.myjobs.find( { id: 29 } )

如何通过在"os" : "VM-WIN7-64"内输入id(id = 29)来获取jobs,无需使用os获取"id":"70"个详细信息

4 个答案:

答案 0 :(得分:5)

像这样:

db.myjobs.find( { "jobs.id": "29" } )

MongoDB不执行递归搜索,因此如果要在嵌套文档中查找字段,则必须使用点表示法提供字段的路径。

此外,MongoDB中的字段已输入,因此字符串"29"不等于数字29

答案 1 :(得分:1)

您可以使用点运算符进入对象内部。

db.myjobs.find({
   "jobs.id": "29"
})

答案 2 :(得分:0)

以下内容应该有效

db.myjobs.find({" jobs.id":" 29"},{" _id":0," OS&#34 ;:1})

答案 3 :(得分:0)

使用以下内容,它应该有效。如果它适用于UPVOTE

,请告诉我
db.myjobs.find({id: 29})