$and, $or 使用問題


  • Lv 1

    db.test.find({

      $or: [ { a: 1 }, { b: 2 } ],

      $or: [ { c: 3 }, { d: 4 } ]

    })

    會發生錯誤,如果使用MongoBooster之類的軟體,運行之前編輯器就能給你提示。

    對於其它框架沒錯誤提示

     感覺邏輯是對的啊?確運行失敗

     

    $and

     

    使用$and可以解決上面那個問題:

     

    db.test.find({

      $and: [

        { $or: [ { a: 1 }, { b: 2 } ] },

        { $or: [ { c: 3 }, { d: 4 } ] }

      ]

    })


  • Lv 1

    @leo

    沒錯喔~mongodb不支持在find裡放多個$or,解決辦法是用$and包起來~


  • 大中华区MongoDB顾问

    其实你可以把条件部分想象为一个hash table. 如果向一个hash table里写了2次同样的key ($or) 会发生什么?


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待