[MONGODB] 당신은 몽고에서 $ addToSet에 대한 키를 지정할 수 있습니까?
MONGODB당신은 몽고에서 $ addToSet에 대한 키를 지정할 수 있습니까?
나는 문서가 :
{ 'profile_set' :
[
{ 'name' : 'nick', 'options' : 0 },
{ 'name' : 'joe', 'options' : 2 },
{ 'name' : 'burt', 'options' : 1 }
]
}
그리고 이름이 이미 (옵션에 관계없이) 존재하지 않는 경우 profile_set 세트에 새 문서를 추가하고 싶습니다.
내가 추가하려고하면이 예에서는 이렇게 :
{ '이름': '매트', '옵션'0}
그것을 추가 할 수 있지만 추가한다
{ '이름': '닉', '옵션': 2}
아무것도하지 않고해야 할 문서가 이미 옵션이 다른 경우에도 이름을 별명으로 존재하기 때문이다.
몽고는 전체 요소에 대해 일치 보인다 나는 그것이 동일합니다 있는지 확인하는 끝낼 내가 끝낼
profile_set containing [{'name' : 'nick', 'options' : 0}, {'name' : 'nick', 'options' : 2}]
$ addToSet이 할 수있는 방법이 있나요 아니면 다른 명령을 밀어해야합니까?
해결법
-
==============================
1.당신은 이름이 이미 profile_set에있는 경우 업데이트를 방지 질의 객체로 업데이 트를받을 수 있습니다. 쉘의 경우 :
당신은 이름이 이미 profile_set에있는 경우 업데이트를 방지 질의 객체로 업데이 트를받을 수 있습니다. 쉘의 경우 :
db.coll.update( {_id: id, 'profile_set.name': {$ne: 'nick'}}, {$push: {profile_set: {'name': 'nick', 'options': 2}}})
이것은 단지 일치와 문서에 대한 $ 푸시을 수행 그래서 _ID와 이름이 '닉'는 어디 profile_set 요소가없는입니다.
from https://stackoverflow.com/questions/14527980/can-you-specify-a-key-for-addtoset-in-mongo by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를는 : 배열의 항목 수를 카운트 (0) | 2019.11.30 |
---|---|
[MONGODB] 몽구스는 항상 빈 배열 NodeJS를 반환 (0) | 2019.11.30 |
[MONGODB] 어떻게하여 MongoDB에서 배열 요소를 제거하려면? (0) | 2019.11.30 |
[MONGODB] 특정 값을 포함하는 배열 문서를 찾기 (0) | 2019.11.30 |
[MONGODB] MongoDB의에서 정확한 요소 배열에서 업데이트 필드 (0) | 2019.11.30 |