SQL脳に優しいMongoDBクエリー入門
mongoコマンドから接続した際にオールドタイプ(SQL脳)たる我々人類にも
調べやすい形でinsert、select、updateを行う方法を調べました。
定義参照
// use [データベース名] use [データベース名] // show databases show dbs // show tables show collections
参照系
// select * from [コレクション名] db.[コレクション名].find() // select * from [コレクション名] where x=4 db.[コレクション名].find({x:4}) // select j from [コレクション名] where x=4 db.[コレクション名].find({x:4}, {j:1}) // select * from [コレクション名] limit 1 db.[コレクション名].findOne() // select * from [コレクション名] where x > 1 db.[コレクション名].find({x : {$gt: 1}}) // select * from [コレクション名] where x < 3 and x > 1 db.[コレクション名].find({x : {$gt: 1, $lt: 3}}) // select * from [コレクション名] limit 3 db.[コレクション名].find().limit(3); // join的な事も可能 // select * from [コレクション名1] inner join [コレクション名2] on x = x p = db.[コレクション名1].findOne({x:1}); db.[コレクション名2].findOne( { _id : p.x } ) // select * from [コレクション名] order by x desc db.[コレクション名].find().sort({x:-1}); // select count(*) from [コレクション名] db.[コレクション名1].find({x:1}).count(); // explan select * from [コレクション名] where x = 1 db.[コレクション名].find({x:1}).explain();
更新系
// insert into [コレクション名] (x) value( 3 ) t = { x : 3 }; db.[コレクション名].insert(t); // update [コレクション名] set y = 1 where x = 1 db.[コレクション名].update( { x:1 }, { $set: { y : 1 } } ); // delete from [コレクション名] where x = 1 db.[コレクション名].remove({x:1}) t = { x : 3 }; // 「_id」が存在すればupdate、存在しなければinsert db.[コレクション名].save(t)
index関係
// create index hoge on [コレクション名] (x) db.[コレクション名].ensureIndex({x:1}); // 複合indexも可能 // create index hoge on [コレクション名] (x,y) db.[コレクション名].ensureIndex({x:1, y:1}); // create unique index hoge on [コレクション名] (x) db.[コレクション名].ensureIndex({x: 1}, {unique: true}); // drop index hoge db.[コレクション名].dropIndex({x: 1, y: -1}) // コレクションの全てのindex削除 db.[コレクション名].dropIndexes(); // バックグラウンドで (lock無しに)indexを張る db.[コレクション名].ensureIndex({x:1}, {background:true});