2011-09-09 67 views
3

我試圖在我的集合中使用find()命令在MongoDB中找到文檔, 任何人都可以解釋爲什麼它不起作用?並糾正命令執行相同?如何使用MongoDB db.coll.find()根據內部類中的字段進行搜索?

j = {name:"mongo",property:{type:"database",lang:"cpp"}}; 
{ 
    "name" : "mongo", 
    "property" : { 
     "type" : "database", 
     "lang" : "cpp" 
    } 
} 

db.dummy.save(j); 

db.dummy.find({"property" : { "type" : "database" }}); 

最後的命令沒有返回任何東西給我。我無法理解爲什麼。我該怎麼辦,如果我

回答

5

MongoDB中存在的dot notation概念。因此,要使用點符號來嵌入文檔。在你的情況下,它會看起來像:

db.dummy.find({"property.type": "database"}) 

或者您也可以通過完整的對象匹配這樣的搜索:

db.dummy.find({"property" : { "type" : "database", "lang" : "cpp" }}); 
+0

謝謝!這很有幫助 – darshan

+0

@darshan:歡迎來到stackoverflow! –

1

正確的查詢模式是這樣的:

db.dummy.find({"property.type": "database"}) 
1

這一個工程:

db.dummy.find({"property.type": "database"}) 
相關問題