2013-10-16 167 views
3

你好,我剛剛開始使用mongo,並試圖運行一個基本的find()命令。mongodb發現沒有返回結果

我有了看起來像這樣記錄的集合:

{ 
"event" : "cheat", 
"message" : { 
    "tableid" : 205, 
    "time" : 1381853433038, 
    "link" : "/dbcheat/table205/iID3731" 
}, 
"_id" : ObjectId("525d68f999ddc6a019000004") 
} 

我想找到所有已TABLEID 205例如條目。如果我運行這個命令,我回到一行。

db.example.find({ 
"message" : { 
    "tableid" : 205, 
    "time" : 1381853433038, 
    "link" : "/dbcheat/table205/iID3731" 
} 
}) 

但是,如果我只是嘗試運行此命令,我會返回零結果。有誰知道可能是什麼問題?

db.example.find({ 
    "message" : { 
     "tableid" : 205 
    } 
}) 

回答

6

您應該能夠這樣做,找到所需的文件執行以下操作:

db.example.find({ "message.tableid": 205 }) 
+0

非常感謝,它像一個魅力一樣工作!猜猜我的語法錯了。 – vcazan

+0

我相信問題是你的方法來嵌套它。正如你注意到的,你可以簡單地使用點 – Manticore

0

像從thtsigma答覆中的點表示法可以讓你深入到嵌入文檔和搜索。你嘗試的第二種方式是說帶回一個嵌入式文件,該文件僅包含以下內容:「tableid」:205