2012-01-24 53 views
0

假設我有以下集合:如何從mongoDB中檢索任何元素值?

{ _id" : ObjectId("4f1d8132595bb0e4830d15cc"), 
    "Data" : "[ 
      { "id1": "100002997235643", "from": {"name": "Joannah" ,"id": "100002997235643"} , "label" : "test" } , 
      { "id1": "100002997235644", "from": {"name": "Jon" ,"id": "100002997235644"} , "label" : "test1" } 
     ]" , 
    "stat" : "true" 
} 

我怎麼可以檢索ID1,名稱,標識,標籤或任何其他元素?

我能夠得到_id字段,數據(完整數組),但不是數據中的內部元素。

回答

0

您無法查詢嵌入式結構。您總是查詢頂級文檔。如果你想查詢你的數組中的單個元素,你將不得不使這些元素成爲頂級文檔(所以把它們放在它們自己的集合中),並在這個文檔中維護一個_id數組。

也就是說,除非數組變得非常大,否則只需抓取整個文檔並在應用程序中找到合適的元素就幾乎總是更高效。

0

我不認爲你可以這樣做。這是解釋here

如果您想訪問特定的字段,然後按照MongoDB Documentation, 你可以一個標誌參數添加到您的查詢,但你應該重新設計你的文件,這是有用的:

字段選擇

除查詢表達式外,MongoDB查詢還可以採用一些附加參數。例如,可以只請求返回某些字段。如果我們只想要姓氏爲'Smith'的用戶的社會安全號碼,那麼從shell中我們可以發出以下查詢:

// retrieve ssn field for documents where last_name == 'Smith': 
db.users.find({last_name: 'Smith'}, {'ssn': 1}); 

// retrieve all fields *except* the thumbnail field, for all documents: 
db.users.find({}, {thumbnail:0}); 
相關問題