2012-04-11 65 views
0

我第一次冒險進入Mongo。請回答以下問題,以節省一些時間。這是架構。陣列查詢並返回

"_id" : 1, 
    "FullName" : "Full Name", 
    "Email" : "[email protected]", 
    "FacebookId" : NumberLong(0), 
    "LastModified" : ISODate("2012-04-11T09:26:10.955Z"), 
    "Connections" : [{ 
     "_id" : 7, 
     "FullName" : "Fuller name", 
     "Email" : "[email protected]", 
     "FacebookId" : NumberLong(0), 
     "LastModified" : ISODate("0001-01-01T00:00:00Z") 
    }, 

    .... 

給定一個頂部用戶的ID,我想返回所有電子郵件的連接陣列中,並且優選地,就在電子郵件。什麼是查詢字符串?多謝!

回答

1

您不能只從MongoDB中的子對象獲取值。

如果你做這樣的查詢:

db.test.find({"_id": 1}, {"Connections.Email":1}); 

你會得到這樣的回答:

{ 
    "_id": 1, 
    "Connections" : [ {"Email":"[email protected]"}, 
        {"Email":"[email protected]"} ] 
} 

這是你可以從MongoDB中一個簡單的查詢和字段選擇得到最接近。

然後,您可以使用簡單的foreach過濾出代碼中的電子郵件值。

+0

好的,謝謝基督徒! – Martin 2012-04-11 20:24:35