[MONGODB] 어떻게 몽고의 "NOT IN"쿼리를해야합니까?
MONGODB어떻게 몽고의 "NOT IN"쿼리를해야합니까?
이것은 내 문서입니다 :
{
title:"Happy thanksgiving",
body: "come over for dinner",
blocked:[
{user:333, name:'john'},
{user:994, name:'jessica'},
{user:11, name: 'matt'},
]
}
"차단"의 사용자 (11)이없는 모든 문서를 찾을 수있는 쿼리는 무엇입니까?
해결법
-
==============================
1.당신은 "하지"에 $ 나에 대한 $ 닌을 사용할 수 있습니다
당신은 "하지"에 $ 나에 대한 $ 닌을 사용할 수 있습니다
예 ...
> db.people.find({ crowd : { $nin: ["cool"] }});
내가 여기 무리 더 많은 예제를 넣어 : http://learnmongo.com/posts/being-part-of-the-in-crowd/
-
==============================
2.단일 값과 비교하고 있기 때문에, 당신의 예를 실제로 조작으로 NOT 필요하지 않습니다. 몽고는 배열의 하위 문서의 모든 요소에 자사의 검색 기준을 적용하기 때문입니다. 당신은 NOT이 검색에서 켤 수 없습니다 값을 가져 당신이 원하는 것을 얻기 위해 운영자, $ 네브라스카, EQUALS 사용할 수 있습니다 :
단일 값과 비교하고 있기 때문에, 당신의 예를 실제로 조작으로 NOT 필요하지 않습니다. 몽고는 배열의 하위 문서의 모든 요소에 자사의 검색 기준을 적용하기 때문입니다. 당신은 NOT이 검색에서 켤 수 없습니다 값을 가져 당신이 원하는 것을 얻기 위해 운영자, $ 네브라스카, EQUALS 사용할 수 있습니다 :
db.myCollection.find({'blocked.user': {$ne: 11}});
당신이 동일 할 수없는 많은 것들을있는 경우는 $ 닌이다 운영자에하지를 사용합니다 때, 즉. 그것은 검색에서 켤 수 없습니다 값의 배열을 취합니다
db.myCollection.find({'blocked.user': {$nin: [11, 12, 13]}});
-
==============================
3.다음을 시도해보십시오
다음을 시도해보십시오
db.stack.find({"blocked.user":{$nin:[11]}})
이것은 나를 위해 일했다.
-
==============================
4.http://docs.mongodb.org/manual/reference/operator/query/nin/#op._S_nin 참조
http://docs.mongodb.org/manual/reference/operator/query/nin/#op._S_nin 참조
db.inventory.find( { qty: { $nin: [ 5, 15 ] } } )
from https://stackoverflow.com/questions/6391643/how-do-i-do-a-not-in-query-in-mongo by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 유성 수집의 정렬 순서를 업데이트하지 않습니다 구독 (0) | 2019.12.12 |
---|---|
[MONGODB] Mongoose.js의 instance.save () 콜백 발사하지 (0) | 2019.12.12 |
[MONGODB] 문서의 중첩 배열에 포함 된 문서를 제거 (0) | 2019.12.11 |
[MONGODB] Node.js를 익스프레스 응답에 MongoDB를 커서에서 스트림 (0) | 2019.12.11 |
[MONGODB] 한 번 MongoDB의 자바를 통해 여러 문서를 삽입하는 방법 (0) | 2019.12.11 |