2016-10-21 19 views
1

まず、私が働いていることを説明しましょう。 私はplnkrのようにモデル化されたuserProfilesのコレクションを持っています。 編集されたトピックの配列が渡されている関数もあります。次に、一致するtopicIDのuserProfilesコレクションを検索し、ドキュメントのトピックセクションを置き換える必要があります。ドキュメント全体ではありません。私はcollection.replace()を知っています。しかし、これはドキュメント全体を置き換えます。私はそれの半分のように交換する必要があります。だから、findOneAndUpdate()を使用する必要がありますか?よく分かりません。私はMongoを初めて使っています。私はコードリファレンスのためにplnkrを作っています。 plnkrMongoDB文書を編集する

答えて

1

これには$setを使用できます。

db.userProfiles.update(
    { "UserTopics.topicID": "abc"}, 
    { $set: { "UserTopics.$": editedTopic } } 
) 
+0

「UserTopics。$」の内部で。$がしているのは正確ですか? –

+0

@AustinHunter、 "UserTopics.topicID"を使用すると、配列内の要素に一致することになります。したがって、$は '' UserTopics.topicID ': "abc"'で選択した要素を表します。 –

2

トピックを置き換える必要がある場合は、単にupdateメソッドを使用してください。複数のuserProfileを編集する必要がある場合は、multiをtrueに設定します(複数のユーザーに希望のtopicIdがある場合)。

+0

私は以前はマルチを見たことがない、まさに私が必要とするもののように見えます。驚くばかり。私はこれを試してみましょう。 –

関連する問題