MongoDBでちゃんと$andがあった件

  • 投稿日:
  • by

以前の記事でMongoDBで$orが複数使えないという件を書きましたが、最近になって$andがちゃんと用意されていることを知りました。

node.jsのドライバを使っていたので、

http://mongodb.github.io/node-mongodb-native/

のドキュメントを読んでいたのですが、これが敗因でした。 MongoDB本体のドキュメントである

http://www.mongodb.org/

にはちゃんと書いてありました。こちら。

http://docs.mongodb.org/manual/reference/operator/and/

なぜ、前回は見つけられなかったのでしょう。

これを使えば、 「(AまたはB)かつ(CまたはD)」のようなクエリを書くことができます。

{"$and": [{$or: [{"name": "orange"}, {"name": "apple"}]},
          {$or: [{"color": "red"}, {"color": "green"}]}]}

といったところ。ちなみに、この例は$inでも書けてしまいますが。

MongoDBには他にも色々機能がありそうなので、また調べてみようと思います。