2017-05-12 3 views
0

私は、コレクション内の配列の配列を持つと私はその配列内のアイテムを追加するためにaddToSetを使用するために知っておく必要がある...続きは私の文書構造配列の配列のmongodbのaddToSet?あなたが内部の二つの配列がある見ることができるように

db.Timeline.insert({ 
Email : "[email protected]", 
BlogPosts :[{ 
Title : "Party Time", 
Name : "Sagar Khan", 
Description : "Some Description", 
Date : new Date(), 
Image : "users/[email protected]/pictures/prof-pic.jpg", 
Likes : ["[email protected]"], 
    Comments : [ {    **<-- Need to addToSet in this array** 
    email : "[email protected]", 
    Name : "Harish Shinde", 
    Image : "users/[email protected]/pictures/prof-pic.jpg", 
    comment : "Wow its soo true", 
    Time : new Date() 
    }] 
}] 
}); 

ですタイムラインのコレクション BlogPosts-

すなわち>私は コメント ARRに項目を追加する必要が

コメント私がダウンして2つのレベルを取得する必要があることを意味AY ...私は

にこれを行う方法については考えている私は、以前のソリューションを見て、このような何かを試していないが、運

db.Timeline.update({Email :" [email protected]"},{$addToSet:{ "BlogPosts.Comments":{"Title":"null"}}}); 

この

があります
db.Timeline.update({Email :" [email protected]"},{$addToSet:{ 'BlogPosts.$.Comments':{"Title":"test"}}}); 

そして、はい、私は は、事前にありがとう...私は、その後、同様PHP構文を取得するのであれば、それは私の仕事が楽になります ...私はコンソールでそれをしようとしています最初のPHPでこれを実行する必要がありますが、

+0

の更新時に更新する必要があるブログの記事のどの思考を試してみて、位置オペレータ$を使用してください。位置 '$ 'は良い方法です。クエリ部分に何かを追加する必要があります。 – malarzm

答えて

1

これを行うには、配列に配列を追加しようとしているので、の上にBlogPostsのどの要素を更新する必要があるのか​​を指定する必要があります。配列をどの配列に追加しようとしているのかをMongoに伝えなければなりません。

db.Timeline.updateOne( {"Email": "[email protected]", "BlogPosts.Title" : "PartyTime"}, {$addToSet : {"BlogPosts.$.Comments" : {"Title" : "test"}}} )

+0

これは完全に機能しました。 –

関連する問題