日期:2014-05-16  浏览次数:20596 次

MongoDB语法与现有关系型数据库SQL语法比较

MongoDB语法?????????????????????????????????? MySql语法
db.test.find({'name':'foobar'}) <==> select * from test where name='foobar'
db.test.find()??????????????????????????? <==> select * from test
db.test.find({'ID':10}).count() <==> select count(*) from test where ID=10
db.test.find().skip(10).limit(20) <==> select * from test limit 10,20
db.test.find({'ID':{$in:[25,35,45]}}) <==> select * from test where ID in (25,35,45)
db.test.find().sort({'ID':-1})? <==> select * from test order by ID desc
db.test.distinct('name',{'ID':{$lt:20}})? <==> select distinct(name) from test where ID<20

db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})? <==> select name,sum(marks) from test group by name

db.test.find('this.ID<20',{name:1})? <==> select name from test where ID<20

db.test.insert({'name':'foobar','age':25})<==>insert into test ('name','age') values('foobar',25)

db.test.remove({})??????????????????????? <==> delete * from test
db.test.remove({'age':20})??????????? <==> delete test where age=20
db.test.remove({'age':{$lt:20}})?? <==> elete test where age<20
db.test.remove({'age':{$lte:20}})? <==> delete test where age<=20
db.test.remove({'age':{$gt:20}})? <==> delete test where age>20
db.test.remove({'age':{$gte:20}}) <==> delete test where age>=20
db.test.remove({'age':{$ne:20}})? <==> delete test where age!=20

db.test.update({'name':'foobar'},{$set:{'age':36}}) <==> update test set age=36 where name='foobar'
db.test.update({'name':'foobar'},{$inc:{'age':3}}) <==> update test set age=age+3 where name='foobar'