2016-09-14 24 views
0

質問:mongodb内のドキュメントの埋め込みドキュメントに、外部ドキュメントを返した後にJSONセレクタを使用してアクセスできますか?例を挙げてその質問を説明させてください:JSONを使用してmongodbの埋め込みドキュメントにアクセスする

とします。コメントには、ユーザーがあります。 MongoDBのドキュメントを保存するためにJSONオブジェクトを使用して(私は/理解して知っているこれまでのところ)、

var comments = db.Comments.find(); 

そして、私が埋め込まれた文書を返すために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();'を使うと、コメントはコメントの配列なので、最初のコメントのユーザはコメント[0] ['Users'] –

関連する問題