数据库

 首页 > 数据库 > MongoDB > MySQL与MongoDB的对比

MySQL与MongoDB的对比

分享到:
【字体:
导读:
         摘要:查询:MySQL:SELECT*FROMuserMongo:db.user.find()MySQL:SELECT*FROMuserWHEREname’starlee’Mongo:db.user.find({‘name’:’starlee’})插入:MySQL:INSERTINOTuser(`name`,`age`)va...

MySQL与MongoDB的对比

查询:   

MySQL:   

SELECT * FROM user   

Mongo:   

db.user.find()  

  

MySQL:   

SELECT * FROM user WHERE name = ’starlee’   

Mongo:   

db.user.find({‘name’ : ’starlee’})   

  

插入:   

MySQL:   

INSERT INOT user (`name`, `age`) values (’starlee’,25)   

Mongo:   

db.user.insert({‘name’ : ’starlee’, ‘age’ : 25})   

  

如果你想在MySQL里添加一个字段,你必须:   

ALTER TABLE user….   

但在MongoDB里你只需要:   

db.user.insert({‘name’ : ’starlee’, ‘age’ : 25, ‘email’ : ’starlee@starlee.com’})   

  

删除:   

MySQL:   

DELETE * FROM user   

Mongo:   

db.user.remove({})   

  

MySQL:   

DELETE FROM user WHERE age < 30   

Mongo:   

db.user.remove({‘age’ : {$lt : 30}})   

  

$gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=   

  

更新:   

  

MySQL:   

UPDATE user SET `age` = 36 WHERE `name` = ’starlee’   

Mongo:   

db.user.update({‘name’ : ’starlee’}, {$set : {‘age’ : 36}})   

  

MySQL:   

UPDATE user SET `age` = `age` + 3 WHERE `name` = ’starlee’   

Mongo:   

db.user.update({‘name’ : ’starlee’}, {$inc : {‘age’ : 3}})   

  

MySQL:   

SELECT COUNT(*) FROM user WHERE `name` = ’starlee’   

Mongo:   

db.user.find({‘name’ : ’starlee’}).count()   

  

MySQL:   

SELECT * FROM user limit 10,20   

Mongo:   

db.user.find().skip(10).limit(20)   

  

MySQL:   

SELECT * FROM user WHERE `age` IN (25, 35,45)   

Mongo:   

db.user.find({‘age’ : {$in : [25, 35, 45]}})   

  

MySQL:   

SELECT * FROM user ORDER BY age DESC   

Mongo:   

db.user.find().sort({‘age’ : -1})   

  

MySQL:   

SELECT DISTINCT(name) FROM user WHERE age > 20   

Mongo:   

db.user.distinct(‘name’, {‘age’: {$lt : 20}})   

  

MySQL:   

SELECT name, sum(marks) FROM user GROUP BY name   

Mongo:   

db.user.group({   

key : {‘name’ : true},   

cond: {‘name’ : ‘foo’},   

reduce: function(obj,prev) { prev.msum += obj.marks; },   

initial: {msum : 0}   

});   

  

MySQL:   

SELECT name FROM user WHERE age < 20   

Mongo:   

db.user.find(‘this.age < 20′, {name : 1})   

  

发现很多人在搜MongoDB循环插入数据,下面把MongoDB循环插入数据的方法添加在下面:   

  

for(var i=0;i<100;i++)db.test.insert({uid:i,uname:’nosqlfan’+i});   

  

上面一次性插入一百条数据,大概结构如下:   

{ “_id” : ObjectId(“4c876e519e86023a30dde6b8″), “uid” : 55, “uname” : “nosqlfan55″ }   

{ “_id” : ObjectId(“4c876e519e86023a30dde6b9″), “uid” : 56, “uname” : “nosqlfan56″ }   

{ “_id” : ObjectId(“4c876e519e86023a30dde6ba”), “uid” : 57, “uname” : “nosqlfan57″ }   

{ “_id” : ObjectId(“4c876e519e86023a30dde6bb”), “uid” : 58, “uname” : “nosqlfan58″ }   

{ “_id” : ObjectId(“4c876e519e86023a30dde6bc”), “uid” : 59, “uname” : “nosqlfan59″ }   

{ “_id” : ObjectId(“4c876e519e86023a30dde6bd”), “uid” : 60, “uname” : “nosqlfan60″ }   

  

  

简易对照表   

SQL Statement                                         Mongo Query Language Statement   

CREATE TABLE USERS (a Number, b Number)             implicit; can be done explicitly   

INSERT INTO USERS VALUES(1,1)                       db.users.insert({a:1,b:1})   

SELECT a,b FROM users                               db.users.find({}, {a:1,b:1})   

SELECT * FROM users                                 db.users.find()   

SELECT * FROM users WHERE age=33                    db.users.find({age:33})   

SELECT a,b FROM users WHERE age=33                  db.users.find({age:33}, {a:1,b:1})   

SELECT * FROM users WHERE age=33 ORDER BY name      db.users.find({age:33}).sort({name:1})   

SELECT * FROM users WHERE age>33                    db.users.find({'age':{$gt:33}})})   

SELECT * FROM users WHERE age<33                    db.users.find({'age':{$lt:33}})})   

SELECT * FROM users WHERE name LIKE "%Joe%"         db.users.find({name:/Joe/})   

SELECT * FROM users WHERE name LIKE "Joe%"          db.users.find({name:/^Joe/})   

SELECT * FROM users WHERE age>33 AND age<=40        db.users.find({'age':{$gt:33,$lte:40}})})   

SELECT * FROM users ORDER BY name DESC              db.users.find().sort({name:-1})   

CREATE INDEX myindexname ON users(name)             db.users.ensureIndex({name:1})   

CREATE INDEX myindexname ON users(name,ts DESC)     db.users.ensureIndex({name:1,ts:-1})   

SELECT * FROM users WHERE a=1 and b='q'             db.users.find({a:1,b:'q'})   

SELECT * FROM users LIMIT 10 SKIP 20                db.users.find().limit(10).skip(20)   

SELECT * FROM users WHERE a=1 or b=2                db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )   

SELECT * FROM users LIMIT 1                         db.users.findOne()   

EXPLAIN SELECT * FROM users WHERE z=3               db.users.find({z:3}).explain()   

SELECT DISTINCT last_name FROM users                db.users.distinct('last_name')   

SELECT COUNT(*y) FROM users                         db.users.count()   

SELECT COUNT(*y) FROM users where AGE > 30          db.users.find({age: {'$gt': 30}}).count()   

SELECT COUNT(AGE) from users                        db.users.find({age: {'$exists': true}}).count()   

UPDATE users SET a=1 WHERE b='q'                    db.users.update({b:'q'}, {$set:{a:1}}, false, true)   

UPDATE users SET a=a+2 WHERE b='q'                  db.users.update({b:'q'}, {$inc:{a:2}}, false, true)   

DELETE FROM users WHERE z="abc"                     db.users.remove({z:'abc'});

MySQL与MongoDB的对比
分享到:
MongoDB数据库常用命令
MongoDB数据库常用命令1.1  基本操作 db.addUser(username,password)   //添加用户 db.auth(usrename,password)      //设置数据库连接验证 db.cloneDataBase(fromhost)      //从目标服务器克隆一个数据库 db.commandHelp(name)            //returns the help for the command d...
PHP与MongoDB数据库的应用开发
PHP与MongoDB数据库的应用开发 八、实际应用 一些开发人员可能害怕使用一种新型的数据库,因为它和他们以前工作中用过的那些不同。 在理论上学习新事物不同于在实践中学习如何使用,所以,这部分内容将通过比较基于SQL的关系型数据库,比如MySQL,来解释如何用MongoDB来开发实际应用,这样就可以熟悉这两种途径 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……