반응형
Mongo에서 $ addToSet에 대한 키를 지정할 수 있습니까?
문서가 있습니다.
{ 'profile_set' :
[
{ 'name' : 'nick', 'options' : 0 },
{ 'name' : 'joe', 'options' : 2 },
{ 'name' : 'burt', 'options' : 1 }
]
}
이름이 이미 존재하지 않는 경우 (옵션에 관계없이) profile_set 세트에 새 문서를 추가하려고합니다.
따라서이 예제에서 추가하려고하면 :
{'name' : 'matt', 'options' : 0}
추가해야하지만
{'name' : 'nick', 'options' : 2}
이 (가 ) 다르 nick
더라도 이름이있는 문서가 이미 존재하므로 아무 작업도하지 않아야합니다 option
.
Mongo는 전체 요소와 일치하는 것으로 보이며 동일한 지 확인하고 결국
profile_set containing [{'name' : 'nick', 'options' : 0}, {'name' : 'nick', 'options' : 2}]
$ addToSet으로이 작업을 수행 할 수있는 방법이 있습니까? 아니면 다른 명령을 푸시해야합니까?
에 이미있는 update
경우 업데이트를 방지하는 쿼리 개체 로을 한정 할 수 있습니다 . 셸에서 :name
profile_set
db.coll.update(
{_id: id, 'profile_set.name': {$ne: 'nick'}},
{$push: {profile_set: {'name': 'nick', 'options': 2}}})
이 단지를 수행 할 수 있도록 $push
일치와 문서에 대한 _id
시간과 위치가없는 profile_set
요소 name
입니다 'nick'
.
참고 URL : https://stackoverflow.com/questions/14527980/can-you-specify-a-key-for-addtoset-in-mongo
반응형
'program story' 카테고리의 다른 글
UITextField 최대 길이 설정 (0) | 2020.11.22 |
---|---|
Bash에서 문자열의 각 문자에 대해 for 루프를 수행하는 방법은 무엇입니까? (0) | 2020.11.22 |
Markdown에서 오른쪽 정렬 및 양쪽 정렬 방법은 무엇입니까? (0) | 2020.11.21 |
디버그 메시지 "리소스가 다른 것으로 해석되었지만 MIME 유형 application / javascript로 전송 됨" (0) | 2020.11.21 |
Vim에 자동으로 일치하는 중괄호 삽입 (0) | 2020.11.21 |