복붙노트

[MONGODB] MongoDB를하지 같음

MONGODB

MongoDB를하지 같음

텍스트 필드가 아닌 어디 MongoDB의에 쿼리를 표시하기 위해 노력하고있어 ''(빈)

{ 'name' : { $not : '' }}

나는 $의 오류 잘못된 사용을하지 얻을 그러나

나는 문서를 통해 봤는데하지만 그들이 사용하는 예는 복잡한 경우에 (정규 표현식으로하고 $ 다른 연산자를 부정하지 않음)입니다.

어떻게 내가 할 노력하고있어 간단한 일을 할 것인가?

해결법

  1. ==============================

    1.$ NE 사용 - 표준 운영자가 따라야하지 $를 :

    $ 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" }
    

    술어 ($ NE) 및을 Negate 그것 ($하지)에 걸립니다 그리고 지금 $하지 :

    db.test.find({'post': {$not: {$ne : ""}}})
    { "_id" : ObjectId("4f68b19c768972d396fe2267"), "author" : "me", "post" : "" }
    
  2. ==============================

    2.여러 $ 네브라스카을하려면 다음을 수행

    여러 $ 네브라스카을하려면 다음을 수행

    db.users.find({name : {$nin : ["mary", "dick", "jane"]}})
    
  3. ==============================

    3.$ NE를 사용하는 대신 $의하지

    $ NE를 사용하는 대신 $의하지

    http://docs.mongodb.org/manual/reference/operator/ne/#op._S_ne

    db.collections.find({"name": {$ne: ""}});
    
  4. ==============================

    4.몽고의 문서에서 :

    몽고의 문서에서 :

    당신은 필드 테스트를하고 있기 때문에 직접 $ NE 여기에 사용할 수있는 권리 운영자입니다.

    편집하다:

    당신은 $를 사용하지 않을하고자하는 상황은 다음과 같습니다

    db.inventory.find( { price: { $not: { $gt: 1.99 } } } )
    

    그 곳 모든 문서를 선택합니다 :

  5. ==============================

    5.이 배열에서 널이며, 당신은 그것을 피하려는 경우 :

    이 배열에서 널이며, 당신은 그것을 피하려는 경우 :

    db.test.find({"contain" : {$ne :[] }}).pretty()
    
  6. ==============================

    6.실생활의 예; 모든하지만 현재 사용자를 찾을 수 :

    실생활의 예; 모든하지만 현재 사용자를 찾을 수 :

    var players = Players.find({ my_x: player.my_x,  my_y: player.my_y, userId: {$ne: Meteor.userId()} }); 
    
  7. from https://stackoverflow.com/questions/9790878/mongodb-not-equal-to by cc-by-sa and MIT license