---
title: MongoDBのクエリメモ
tags: []
categories: ["Middleware", "NoSQL", "MongoDB"]
date: 2011-07-19T15:00:17Z
updated: 2011-07-19T15:00:17Z
---

以前もらったMongoDBのチラシ?の裏に書いてあったのでここにメモっとく

### 検索
<table>
<tr><th>クエリ</th><th>説明</th></tr>
<tr><td><code>{a : 10}</code></td><td>"a"が10または、値10を含む配列のドキュメント</td></th>
<tr><td><code>{a : 10, b : "10"}</code></td><td>"a"が10で"b"が"hello"のドキュメント</td></th>
<tr><td><code>{a : {$gt : 10}}</code></td><td>"a"が10を超えるドキュメント</td></th>
<tr><td><code>{a : {$in : [10, "hello"]}}</code></td><td>"a"が10または"hello"のドキュメント</td></th>
<tr><td><code>{a : {$nin : [10, "hello"]}}</code></td><td>"a"が10と"hello"以外のドキュメント</td></th>
<tr><td><code>{a : {$all : [10, "hello"]}}</code></td><td>"a"が10と"hello"を含む配列のドキュメント</td></th>
<tr><td><code>{a : {$mod : [10, 1]}}</code></td><td>"a" % 10が1のドキュメント</td></th>
<tr><td><code>{a : {$size : 3}}</code></td><td>"a"が２つの要素を含む配列のドキュメント</td></th>
<tr><td><code>{a : {$exists : true}}</code></td><td>"a"フィールドを含むドキュメント</td></th>
<tr><td><code>{a : {$exists : false}}</code></td><td>"a"フィールドを含まないドキュメント</td></th>
<tr><td><code>{a : {$type : 2}}</code></td><td>"a"が文字列のドキュメント</td></th>
<tr><td><code>{a : /foo.*bar/}</code></td><td>"a"が正規表現"foo.*bar"にマッチするドキュメント</td></th>
<tr><td><code>{"a.b" : 10}</code></td><td>"a"が埋め込みドキュメントで,"b"が10に等しいドキュメント</td></th>
<tr><td><code>{a : {$elemMatch: {b : 1, c : 2}}}</code></td><td>"a"が単項目を含む配列で"b"が1に等しく、"c"が2に等しいドキュメント</td></th>
<tr><td><code>{a : {$not : {$type : 2}}}</code></td><td>"a"が文字列ではないドキュメント</td></th>
<tr><td><code>{$where : "this.a == this.b"}</code></td><td>"a"と"b"が等しいドキュメント</td></th>
<tr><td><code>{$or : [{a : 1}, {b : 1}]}</code></td><td>"a"が1、"b"が2のドキュメント</td></th>
</table>

### 更新
<table>
<tr><th>クエリ</th><th>説明</th></tr>
<tr><td><code>{$inc : {a : 2}}</code></td><td>"a"に対して2のインクリメント処理を行います</td></th>
<tr><td><code>{$set : {a : 5}}</code></td><td>"a"を値5に設定します</td></th>
<tr><td><code>{$unset : {a : 1}}</code></td><td>"a"キーを削除します</td></th>
<tr><td><code>{$push : {a : 1}}</code></td><td>値1を配列"a"に追加します</td></th>
<tr><td><code>{$pushAll : {a : [1, 2]}}</code></td><td>値1と2を配列"a"に追加します</td></th>
<tr><td><code>{$addToSet : {a : 1}}</code></td><td>値1が存在しない場合は、配列"a"に追加します</td></th>
<tr><td><code>{$addToSet : {a : {$each : [1, 2]}}}</code></td><td>値1と2が存在しない場合は、配列"a"に追加する</td></th>
<tr><td><code>{$pop : {a : 1}}</code></td><td>配列"a"の最後の要素を削除します</td></th>
<tr><td><code>{$pop : {a : -1}}</code></td><td>配列"a"の最初の要素を削除します</td></th>
<tr><td><code>{$pull : {a : 5}}</code></td><td>配列"a"の5から全ての項目を削除します</td></th>
<tr><td><code>{$pullAll : {a : [5, 6]}}</code></td><td>配列"a"の5または6からすべての項目を削除します</td></th>
</table>
