2013-11-14 62 views
0

是新来的MongoDB蒙戈DB发现操作查询不工作

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" } 

从上面的结果,我要的id=29的基础上返回"os" : "VM-WIN7-64"jobs

我正在使用下面的代码,它是不正确的。

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

我怎样才能"os" : "VM-WIN7-64"通过输入id(ID = 29)内jobs无需使用"id":"70"

回答

4

像这样得到os细节:

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

MongoDB中不执行递归搜索所以如果想要在嵌套文档中查找字段,则必须使用点符号为字段提供路径。 MongoDB中

而且字段类型的字符串,那么是"29"不等于数量29

+0

你:-) –

+0

快,但它是不容易打败你:) – zero323

+0

去上班,所以现在所有问题都是你的:-) –

1

您可以使用点运算符来走对象的内部。

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

以下应该工作

db.myjobs.find({ “jobs.id”: “29”},{ “_ ID”:0, “OS”:1})

0

使用以下,它应该工作。让我知道,如果你的作品与给予好评

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