텍스트 필드가 ”(공백)이 아닌 MongoDB에 쿼리를 표시하려고합니다.
{ 'name' : { $not : '' }}
그러나 나는 오류가 invalid use of $not
나는 문서를 살펴 보았지만 그들이 사용하는 예제는 복잡한 경우에 대한 것입니다 (정규 표현식과 $not
다른 연산자 부정).
내가하려는 간단한 일을 어떻게할까요?
답변
사용 $ne
– $not
뒤에 표준 연산자가 와야합니다.
$ne
같지 않음을 나타내는에 대한 예 :
use test
switched to db test
db.test.insert({author : 'me', post: ""})
db.test.insert({author : 'you', post: "how to query"})
db.test.find({'post': {$ne : ""}})
{ "_id" : ObjectId("4f68b1a7768972d396fe2268"), "author" : "you", "post" : "how to query" }
이제 $not
술어 ( $ne
)를 받아 부정 ( $not
)합니다.
db.test.find({'post': {$not: {$ne : ""}}})
{ "_id" : ObjectId("4f68b19c768972d396fe2267"), "author" : "me", "post" : "" }
답변
여러 작업 $ne
을 수행하려면
db.users.find({name : {$nin : ["mary", "dick", "jane"]}})
답변
$ne
대신 사용$not
http://docs.mongodb.org/manual/reference/operator/ne/#op._S_ne
db.collections.find({"name": {$ne: ""}});
답변
로부터 몽고 워드 프로세서 :
$not
연산자는 다른 연산자에 영향을 미치는 독립적으로 필드 및 문서를 확인할 수 없습니다. 따라서$not
논리적 분리 에는 연산자를 사용하고$ne
필드의 내용을 직접 테스트하려면 연산자를 사용하십시오.
현장을 직접 테스트하고 $ne
있으므로 여기서 사용하기에 적합한 연산자입니다.
편집하다:
사용하려는 상황은 다음과 같습니다 $not
.
db.inventory.find( { price: { $not: { $gt: 1.99 } } } )
다음과 같은 모든 문서가 선택됩니다.
- 가격 필드 값이 1.99 또는 가격보다 작거나 같습니다.
- 필드가 없습니다.
답변
null
배열에있는 경우 이를 피하려면 :
db.test.find({"contain" : {$ne :[] }}).pretty()
답변
실제 사례; 현재 사용자가 아닌 모든 사용자 찾기 :
var players = Players.find({ my_x: player.my_x, my_y: player.my_y, userId: {$ne: Meteor.userId()} });