LoginSignup
3
3

More than 5 years have passed since last update.

mongo のクエリー発行

Posted at

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
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3