`
yjc2020
  • 浏览: 41519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从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简易对照表的详解

    在本篇文章中,我们将针对如何从MySQL数据库迁移到MongoDB数据库进行详细解析,特别是针对基本的数据库操作,如查询、插入、更新、删除等操作的对比。 首先,让我们从查询开始。在MySQL中,查询通常使用SQL语句进行...

    mysql和mongodb性能对比报告

    3. **单一记录插入**:从用例6和7中可以发现,对于单条记录的批量插入操作,MongoDB也明显优于MySQL。尽管两种情况下MySQL和MongoDB的CPU都有所提升,但是MongoDB的运行时间仅为MySQL的一半左右。 #### 结论 通过...

    navicat 连接mysql、mongodb工具

    【Navicat 连接MySQL、MongoDB工具详解】 Navicat是一款强大的数据库管理工具,支持多种数据库系统,包括MySQL和MongoDB等。它提供了一个直观的图形界面,使得数据库的管理和开发工作变得简单易行。以下是关于...

    千万级Mysql-MongoDB性能对比报告

    ### 千万级Mysql-MongoDB性能对比报告 #### 测试环境配置 - CPU: i5 3.30GHz - 内存: 8GB - 操作系统: Windows 7 #### 测试工具与语言 - **Python**作为测试语言 - **MySQL**版本: 5.1,连接工具为**PyMySQL** -...

    go-mysql-mongodb:将MySQL数据同步到MongoDB

    go-mysql-mongodb是一项将MySQL数据自动同步到MongoDB的服务。 它首先使用mysqldump来获取原始数据,然后与binlog增量同步数据。 安装 安装Go( )并设置您的 go get github.com/WangXiangUSTC/go-mysql-mongodb ...

    mysql 和mongodb 互相同步.zip

    - MySQL的批量操作通常通过`INSERT INTO...SELECT`语句实现,一次性将多条记录从一个表转移到另一个表,或通过`LOAD DATA INFILE`命令快速导入大量数据。 - MongoDB的批量操作主要使用`bulk()` API或`insertMany()`...

    MySQL与MongoDB数据库架构介绍.pptx

    MySQL 与 MongoDB 数据库架构介绍 MySQL 数据库架构介绍 MySQL 是由 Oracle 公司开发、发布和支持的受欢迎的开源关系数据库管理系统(RDBMS)。MySQL 将数据存储在表中,并使用结构化查询语句(SQL)来进行数据库...

    整合了一套crud代码,减少sql查询,封装mysql和mongodb等操作

    整合了一套crud代码,减少sql查询,封装mysql和mongodb等操作 参数说明https://mp.csdn.net/mp_download/manage/download/UpDetailed

    jdbc java mongodb mysql 相互同步

    本文将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口与MongoDB、MySQL数据库进行数据交互,并实现相互之间的数据同步。 首先,我们需要理解JDBC,它是Java语言访问数据库的标准API,能够连接并...

    springboot2.1.3 + mysql(mybatis) + mongodb maven项目

    该项目是一个集成SpringBoot 2.1.3、MySQL(MyBatis)、MongoDB的Maven工程,旨在构建一个能够同时处理关系型数据和非关系型数据的系统。下面将详细介绍这三个核心组件及其在项目中的作用。 **SpringBoot 2.1.3** ...

    从MySQL到MongoDB——视觉中国的NoSQL之路.pdf

    "从MySQL到MongoDB——视觉中国的NoSQL之路" MySQL中的挑战 在传统的基于静态内容的产品中,MySQL使用Master+Master的部署方案,前端使用自己的PHP框架进行开发,Memcached作为缓存,Nginx进行Web服务器和负载...

    mysql+mongodb+redis.rar

    本压缩包“mysql+mongodb+redis.rar”包含了三个主流的数据库系统:MySQL、MongoDB和Redis,它们各自有着独特的特性和用途。以下是对这三个数据库系统的详细介绍: 1. **MySQL**: MySQL是一款开源、免费的关系型...

    koa 分别 连接 mysql、mongodb数据库操作.zip

    MongoDB中的一个文档相当于关系型数据库中的一行,多个文档构成了集合(collection),集合类似于关系型数据库中的表。 (3)文档 (行数据): 文档则相当于传统关系型数据的行数据,对于集合中的介绍,我们基本...

    基于SpringBoot + SpringCloud+ElasticSear的在线教育管理系统+MySQL、MongoDB

    持久层:MySQL、MongoDB、Redis、ElasticSearch 数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等 业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring...

    即时通讯PHP+UNIAPP+MYSQL+MONGODB.rar

    例如,每当有新消息产生,系统可以将消息作为一个文档存储到MONGODB中,然后迅速推送给相关用户。 综上所述,这个项目结合了PHP的后端处理能力、UNIAPP的跨平台前端展示、MYSQL的结构化数据存储以及MONGODB的高性能...

    MySQL vs MongoDB

    MySQL和MongoDB是两种非常流行的数据库管理系统,它们分别代表了关系型数据库(RDBMS)和文档型数据库(NoSQL)的典型代表。在选择数据库系统时,了解它们的特性和差异至关重要。以下是对这两种数据库的详细比较: ...

    MySQL与MongoDB多文档事务支持对比分析.docx

    MySQL和MongoDB都是广泛使用的数据库管理系统,但它们在处理多文档事务方面有着不同的特性。MySQL以其ACID(原子性、一致性、隔离性和持久性)事务支持而闻名,而MongoDB在较新的版本中开始支持多文档事务,但在某些...

    mysql, mongodb, redis基本使用方法

    mysql, mongodb, redis三大数据库的基本是用命令, 以及举例

    Springmvc+hibernate+mysql+mongodb

    Spring MVC、Hibernate、MySQL和MongoDB是Web开发中常见的四大技术栈,它们分别在应用程序的模型-视图-控制器(MVC)架构、对象关系映射(ORM)、关系型数据库和文档型数据库方面发挥着重要作用。 Spring MVC是...

Global site tag (gtag.js) - Google Analytics