MongoDBコマンドとSQL文の違いについて

MongoDBコマンドとSQL文の違いについて、教えてください。
2014-07-02 20:00 コメント
已邀请:
0

iQi - 面白いアプリを開発中

{ 賛成 }:

以下、纏めましたので、ご参照ください。

定義参照

// use [データベース名] or create database [データベース名] 
use [データベース名]

// show databases
show dbs

// show tables
show collections

//create table [データベース名](options)
db.createCollection([テーブル名],{options})


参照系

// 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}); 
2014-07-02 20:01 コメント

ログインまたは登録してから回答してください

EXIT フルスクリーンモード 回答