关系型数据库与非关系型数据库,对比学习操作基础的 增、删、改、查
下面是我将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里添加一个字段,你必须:
但在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″ }