`
zhaohaolin
  • 浏览: 1003461 次
  • 性别: 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数据库架构介绍.pptx

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

    千万级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()`...

    整合了一套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