2014-12-05 130 views
0

我有具有結構下方顯示一個JSON文件:蒙戈化JSON名稱搜索

{ 
    "125": { 
     "name": "sample name one", 
     "age" : 22, 
    }, 
    "126": { 
     "name": "sample name two", 
     "age" : 27, 
    }, 
    "127": { 
     "name": "sample name three", 
     "age" : 21, 
    } 
} 

我要回了125所代表的對象,即下面的對象:

{ 
    "name": "sample name one", 
    "age" : 22, 
} 

我已經嘗試了以下查詢從控制檯,但我無法得到我需要的結果: db.persons.find({"125": {$exists: true}})

我想知道如何查詢數據庫以返回我需要的數據。感謝您的任何幫助。

回答

1
db.persons.find({"125": {$exists: true}}) 

將返回整個文檔,即具有「125」鍵,不僅是「125」鍵。

如果您只需要返回「125」,你應該用投影,將它作爲第二個參數:尋找

db.persons.find({"125": {$exists: true}}, {"125": 1}) 

然後,您將得到包含「125」的重要文件,無需任何其他鍵(除了文件的_id)

要省略的文檔_id,您需要使用:

db.persons.find({"125": {$exists: true}}, {"125": 1, _id: 0}) 

編輯:

您是否考慮將數組用於具有重複模式的子文檔?這會更自然,習慣,也給你一些額外的可能性。

0

在通過JSON的鍵/場/名蒙戈查詢,用$exists操作

db.things.find({ '125' : { $exists : true } });