二足歩行への一歩

技術者のハイハイの記録

mongoDBクエリサンプル

ブログに慣れる事も兼ねて、

mongoDBのクエリサンプルを記載します。

 

where:simple

  select * from hoge where fuga = 1;

  db.hoge.find({fuga:1});

findの中の最初の項目は条件指定ですね。

後述しますが二つ目の項目でカラム指定になっています。

 

where:or

  select * from hoge where foo = 1 or bar = 2

  db.hoge.find( { $or : [{foo : 1 } , {bar:2) ]}) 

キー項目で$or等の条件を指定します。

 

order by 

  select * from hoge order by fuga;

  db.hoge.find().sort({fuga:1});

orderはsort()にて行います。
 

order by desc

  select * from hoge order by fuga desc;

  db.hoge.find().sort({fuga:-1});

 

select:カラム指定

  select foo , bar from hoge ;

  db.hoge.find({},{foo:1,bar:1});

 

group

 select foo , count(foo) from hoge group by foo

 db.hoge.group({key:{foo:true} , initial:{count:0} , reduce: function(obj,prev){ prev.count++;}  })

reduceでどのように集約するかを定義しています。

groupはDBを分散させる際には推奨されておらず、

下記のmap reduceを使います。

 

map reduce

端的には、

map関数で対象の範囲を

reduce関数で集約方法を定義して、

map_reduceを実行するイメージを持っています(違ったらごめんなさい)

 

参考リンク

 

MongoDB : サルでもわかるMapReduce 

http://dqn.sakusakutto.jp/2011/11/mongodb_mapreduce.html

SQLとMongoの対応表

http://www.mongodb.org/pages/viewpage.action?pageId=18907495