2016-09-14 68 views
0

問題是:我可以在返回外部文檔後使用JSON選擇器訪問mongodb中文檔的嵌入式文檔。讓我用一個例子來解釋這個問題:使用JSON訪問mongodb的嵌入式文檔

假設評論有一個嵌入文件用戶。現在首先我回到使用代碼中的註釋文檔:

var comments = db.Comments.find(); 

然後我使用JSON語法返回嵌入文檔,如MongoDB使用JSON對象來存儲文件(到目前爲止我瞭解/知道):

var users = comments['Users']; 

我知道不可能以mongodb的形式返回嵌入式文檔,並且訪問的方式是使用戶分離文檔。但是,我仍然只是出於好奇心詢問這個邏輯是否可行,因爲在用mongodb編寫node.js時,它會幫助我很多。

希望大家理解這個問題。

注意:這個例子只是虛構的,所以請不要評論這個例子是對還是錯,基本目的只是爲了讓我的問題容易理解。

回答

1

假設評論的結構:

{ 
    _id, 
    Users: [ 
     { 
     name 
     } 
    ] 
    } 

你可以做你想做的由骨料:

db.Comments.aggregate([ 
    {$unwind:{path:'$Users'}}, 
    {$project:{'name':'$Users.name', _id: 0}} 
    ]) 
+0

這也給了需要的結果。但是,其實我想知道我的方法是否正確。 –

+0

另外,什麼_id = 0會在投影時扮演角色? –

+1

如果您使用'var comments = db.Comments.find();',comments是一個註釋數組,所以您可以通過評論訪問第一條評論的用戶[0] ['Users'] –