盒子
盒子

MongoDB与MySQL的对比

关系型数据库与非关系型数据库,对比学习操作基础的 增、删、改、查

下面是我将MySQL和Mongo的一些操作进行了类比

1
2
3
4
5
6
7
8
9
MySQL:
SELECT * FROM user<br>
Mongo:
db.user.find()
>MySQL:
SELECT * FROM user WHERE name = ”starlee”<br>
Mongo:
db.user.find({“name”: “starlee”})

插入:

1
2
3
4
MySQL:
INSERT INOT user (`name`, `age`) values (’starlee’,25)<br>
Mongo:
db.user.insert({‘name’ : ’starlee’, ‘age’ : 25})

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

1
ALTER TABLE user….

但在MongoDB里你只需要:

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

删除:

1
2
3
4
5
6
7
8
9
MySQL:
DELETE * FROM user<br>
Mongo:
db.user.remove({})<br>
MySQL:
DELETE FROM user WHERE age < 30<br>
Mongo:
db.user.remove({‘age’ : {$lt : 30}})
$gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=

更新:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
MySQL:
UPDATE user SET `age` = 36 WHERE `name` = ’starlee’<br>
Mongo:
db.user.update({‘name’ : ’starlee’}, {$set : {‘age’ : 36}})<br>
MySQL:
UPDATE user SET `age` = `age` + 3 WHERE `name` = ’starlee’<br>
Mongo:
db.user.update({‘name’ : ’starlee’}, {$inc : {‘age’ : 3}})<br>
MySQL:
SELECT COUNT(*) FROM user WHERE ‘name’ = ’starlee’<br>
Mongo:
db.user.find({‘name’ : ’starlee’}).count()<br>
MySQL:
SELECT * FROM user limit 10,20
Mongo:
db.user.find().skip(10).limit(20).sort(1)<br>
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<br>
Mongo:
db.user.find().sort({‘age’ : -1})
MySQL:
SELECT DISTINCT(name) FROM user WHERE age > 20<br>
Mongo:
db.user.distinct(‘name’, {‘age’: {$lt : 20}})<br>
MySQL:
SELECT name, sum(marks) FROM user GROUP BY name<br>
Mongo:
db.user.group({
key : {‘name’ : true},
cond: {‘name’ : ‘foo’},
reduce: function(obj,prev) { prev.msum += obj.marks; },
initial: {msum : 0}
});

注意学习!

1
2
3
4
MySQL:
SELECT name FROM user WHERE age < 20
Mongo:
db.user.find(‘this.age < 20′, {name : 1})

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

1
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″ }

支持一下
扫一扫,支持wind
  • 微信

  • 支付宝