SimpleNoteの整理中。 内容の正確さは保証しませんが、多分動くと思うよ。
mongoクエリー
db.coll.find(creteria)で強力なクエリーを発行できる。クエリはJSONベースでパラメータを指定。
条件演算子
db.collection.find({ "field" : { $gt: value } } ); // 大きい : field > value
db.collection.find({ "field" : { $lt: value } } ); // 小さい : field < value
db.collection.find({ "field" : { $gte: value } } ); // 以上 : field >= value
db.collection.find({ "field" : { $lte: value } } ); // 以下 : field <= value
db.collection.find({ "field" : { $ne: value } } ); // 否定 : field != value
db.things.find( { a: { $all: [ 2, 3 ] } } ); //2,3を共にマッチするa要素のみマッチ
db.things.find( { a: { $in: [2,4,6] } } ); //2,3どちらかにマッチするa要素のみマッチ
db.things.find( { a: { $nin: [2,4,6] } } ); //2,3どれにもにマッチしないa要素のみマッチ
db.things.find( { a : { $exists : true } } ); // a要素が存在する場合,ドキュメントを返します。
結果項目のフィルタリング
結果項目のフィルタリングを行う場合,findの第二引数を指定する。
// last_name == 'Smith' なドキュメントのssnを取得
db.users.find({last_name: 'Smith'}, {'ssn': 1});
// すべてのドキュメントから、 thumbnail フィールドを*除いた*もの取得。
db.users.find({}, {thumbnail:0});
フィールドのうち、_id
は、明示的に指定しなくても、常に返されます。
結果のソート
// last_nameの昇順で取得する。
db.users.find({}).sort({last_name: 1});
結果をソートする場合,findにsort関数をチェーンする。
ここでsort関数の引数には,ソート対象をキーとし,昇順なら値を1に、降順なら0に指定する。
skipとlimit
db.users.find().skip(20).limit(10);
db.users.find({}, {}, 10, 20); // same as above, but less clear