[MONGODB] 객체의 배열에 몽구스 / MongoDB를 $ addToSet 기능을 사용하여
MONGODB객체의 배열에 몽구스 / MongoDB를 $ addToSet 기능을 사용하여
나는 몽구스 스키마 ( '기사')이 배열 속성을 가지고 말 :
articles: [
{
kind: 'bear',
hashtag: 'foo'
},
{
kind: 'llama',
hashtag: 'baz',
},
{
kind: 'sheep',
hashtag: 'bar',
}
]
내가 사용하는 방법
이 독특한 있는지 확인하기 위해 해시 태그의 값을 확인하여이 배열에 추가?
나는 위의 배열에 다음 개체를 추가 할 경우 중복으로 '거부'에 예를 들어, 나는 몽고를 원하는 :
{
kind: 'tortoise',
hashtag: 'foo'
}
해시 태그 때문에 = foo는 이미 촬영되었습니다.
문제는 난 단지 정수의 간단한 배열 $ addToSet을 사용하는 방법을 알고 있다는 것입니다 ...
예를 들어, 기사는이처럼 보였다 경우 :
articles: [ 1 , 5 , 4, 2]
나는이 같은 $ addToSet을 사용합니다 :
var data = {
"$addToSet": {
"articles": 9
}
}
model.update(data);
하지만 어떻게 고유 필드가 문자열이 경우 '해시 태그'에서, 객체의 배열과 같은 일을 수행 할 수 있습니까? 워드 프로세서는이 명확하게하지 않고 내가 모든 곳에서 검색 한 것처럼 보인다 ..
감사
해결법
-
==============================
1.당신은 $ 네브라스카 연산자를 사용합니다.
당신은 $ 네브라스카 연산자를 사용합니다.
var data = { 'kind': 'tortoise', 'hashtag': 'foo' }; Model.update( { 'article.hashtag': { '$ne': 'foo' } }, { '$addToSet': { 'article': data } } )
해시 태그의 값으로 "기사"배열에는 하위 문서는 "foo는"같음이없는 경우에만이 문서를 업데이트합니다.
@BlakesSeven는 주석에서 언급 한 바와 같이
Model.update({ { 'article.hashtag': { '$ne': 'foo' } }, { '$push': {'article': data } } )
-
==============================
2.
// add the comment's id to the commentsList : // share.comments.commentsList.addToSet(callback._id); share.update( { '$push': {'comments.commentsList': mongoose.Types.ObjectId(callback._id) } } , function(){ console.log('added comment id to the commentsList array of obectIds') })
from https://stackoverflow.com/questions/33576223/using-mongoose-mongodb-addtoset-functionality-on-array-of-objects by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 유성은 MongoDB를 즉시 변경 알 수 있을까? (0) | 2019.12.25 |
---|---|
[MONGODB] 배열에 배열에서 항목을 업데이트 (0) | 2019.12.24 |
[MONGODB] 증가하는 데이터 구조와 MongoDB의 성능 (0) | 2019.12.24 |
[MONGODB] 내가 / 내 편안하고 URL을에서 ObjectId가 사용하지 말아야 할 이유는 어떤 이유가있다 (0) | 2019.12.24 |
[MONGODB] MongoDB의의 $ 프로젝트 : 이전의 파이프 라인 필드를 유지 [중복] (0) | 2019.12.24 |