zoukankan      html  css  js  c++  java
  • mysql 和 mongo db 语法对比

    本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用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 where name='foo' 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″ }

  • 相关阅读:
    CentOS配置启动ssh与开机自启
    CentOS中怎样安装、配置、启动Nginx
    CentOS中配置Mysql表名忽略大小写以及提示:Caused by: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock的解决
    CentOS中部署jar包时提示:org.quartz.SchedulerException: Couldn't get host name
    CentOS6中怎样将jdk1.7升级到1.8
    CentOS6在使用yum install 时提示镜像源路径不存在:PYCURL ERROR 22
    信息系统项目管理师-项目立项管理考点笔记
    chrome89不再支持/deep/的解决方案
    手写async await
    proxy和reflect
  • 原文地址:https://www.cnblogs.com/94julia/p/3945592.html
Copyright © 2011-2022 走看看