2013-11-14 65 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})