2016-10-21 7 views
1

먼저 내가 작업하고있는 것을 설명하겠습니다. 그래서 나는 plnkr처럼 모델링 된 userProfiles 모음을 가지고 있습니다. 편집 된 주제의 배열을 전달하는 함수도 있습니다. 그런 다음 일치하는 topicID에 대해 userProfiles 컬렉션을 검색하고 문서의 항목 섹션을 바꿔야합니다. 전체 문서가 아닙니다. collection.replace()에 대해 알고 있습니다. 하지만 전체 문서를 대체합니다. 나는 그것의 절반을 대체 할 필요가있다. 그래서 findOneAndUpdate()을 사용해야합니까? 확실하지 않은 Im. 나는 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

필자는 멀티를 본 적이 한번도 없는데, 필자가 원하는 것 같습니다. 굉장해. 나는 이것을 시도 할 것이다. –