SQL 和Mongo 对比图表
参看官方说明:
http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
MySQL executable |
Oracle executable |
Mongo executable |
|
mysqld |
oracle |
||
mysql |
sqlplus |
mongo |
|
MySQL term |
Mongo term/concept |
||
database |
|||
table |
|||
index |
|||
row |
BSON document |
||
column |
BSON field |
||
join |
|||
primary key |
|||
group by |
|||
MongoDB queries are expressed as JSON ( BSON) objects. The following chart shows examples as both SQL and in Mongo Query Language syntax.
The query expression in MongoDB (and other things, such as index key patterns) is represented as JSON (BSON). However, the actual verb (e.g. "find") is done in one's regular programming language; thus the exact forms of these verbs vary by language. The examples below are Javascript and can be executed from the mongo shell.
SQL Statement |
Mongo Statement |
CREATE TABLE USERS (a Number, b Number) |
implicit; can also be done explicitly with db.createCollection("mycoll") |
|
|
ALTER TABLE users ADD ... |
|
|
|
INSERT INTO USERS VALUES(3,5) |
db.users.insert({a:3,b:5}) |
|
|
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:{$ne: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}) |
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() |
SELECT order_id FROM orders o, order_line_items li WHERE li.order_id=o.order_id AND li.sku=12345 |
db.orders.find({"items.sku":12345},{_id:1}) |
SELECT customer.name FROM customers,orders WHERE orders.id="q179" AND orders.custid=customer.id |
var o = db.orders.findOne({_id:"q179"}); var name = db.customers.findOne({_id:o.custid}) |
|
|
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() |
|
|
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}) |
|
|
EXPLAIN SELECT * FROM users WHERE z=3 |
db.users.find({z:3}).explain() |
|
|
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'}); |
More examples, specifically aggregation examples, here
MongoDB资料汇总专题
1.MongoDB是什么
- MongoDB介绍PPT分享
- MongoDB GridFS介绍PPT两则
- 初识 MongoDB GridFS
- MongoDB GridFS 介绍
- 一个NoSQL与MongoDB的介绍PPT
- MongoDB:下一代MySQL?
- 写给Python程序员的MongoDB介绍
- 又一篇给Python程序员的MongoDB教程
- MongoDB源码研究系列文章
- 白话MongoDB系列文章
- MongoDB Tailable Cursors 特性介绍
- MongoDB 文档阅读笔记 —— 优雅的 NoSQL
- MongoDB 身上的优势和劣势
- auto-sharding 无用论:auto-sharding vs. manual-sharding
- MongoDB系列文章推荐
- MongoDB MapReduce
- Mongodb Mapreduce 初窥
- MongoDB中文介绍PPT
- MongoDB系列教程
- 【译】 MongoDB 入门教程
- NoSQL介绍及MongoDB入门
- MongoDB入门(PHP客户端)
- 简单的MongoDB
2.MongoDB 内部实现
- MongoDB数据文件内部结构
- 从PHP客户端看MongoDB通信协议
- MongoDB的内部构造 From 《MongoDB The Definitive Guide》
- MongoDB索引内部实现
- 深入MongoDB内部结构
- Replica Sets系列文章之:选举
- Replica Sets系列文章之:更新配置
- Replica Sets系列文章之:同步
- 10gen工程师讲数据库索引实现
- 图解 MongoDB 地理位置索引的实现原理
- MongoDB的索引使用及索引机制
- 不可忽略的缓存重建
- Linux虚拟内存实现原理
- MongoDB数据缓存刷新机制
- MongoDB与内存
- BSON特性探讨及基于其特性的MongoDB优化
- MongoDB paddingFactor的含义
- MongoDB Tailable Cursors深入剖析
- MongoDB文档(Document)全局唯一ID的设计思路
- 详解MongoDB的Compact操作
- MongoDB的JavaScript性能
- MongoDB JavaScript Driver 测试
- MongoDB vs Cassandra
- MongoDB 与 CouchDB 全方位对比
- 关于MongoDB,你可能不知道的十件事
- MongoDB谈分布式数据存储系统
- MongoDB 集群
- Riak与MongoDB的对比
- 大偏移量下Redis、MongoDB分页/排名性能比较
3.MongoDB实战经验分享
- Foursquare 长达 11 小时的宕机
- 三招解决MongoDB的磁盘IO问题
- MongoDB最佳实践
- Foursquare的MongoDB存储实践
- foursquare 的数据分析系统(Hadoop+Hive+Redis+MongoDB)
- Foursquare:使用MongoDB Replica Sets的三种架构
- 视觉中国的NoSQL之路:从MySQL到MongoDB
- MongoDB在盛大大数据量下的应用
- Craigslist迁移20亿数据到MongoDB的经验与教训
- Localytics 的MongoDB优化经验
- wordnik:用MongoDB建立关系图谱
- Wordnik 的 MongoDB 使用经历
- MongoSV2011-Wordnik的MongoDB优化实践
- MongoDB 在 SourceForge 的应用
- MongoDB索引实战技巧
4.MongoDB与开源项目
- MongoDB集成Hadoop进行统计计算
- 使用Fluentd + MongoDB构建实时日志收集系统
- Karait:利用MongoDB Capped Collection构建的消息队列
- MongoDB-Log:基于MongoDB的日志系统
- MongoPress:一个MongoDB加PHP的开源CMS
- 射手分支项目-基于MongoDB的开源短网址服务
- short:Node.js 与 MongoDB结合的开源短域名项目
- 基于MongoDB GridFS的图片存储
- Graylog2:一个使用MongoDB的开源syslog存储系统
- 用MongoDB构建智能数据流过滤系统
- 使用MongoDB来实现web.py的session存储
5.MongoDB客户端与工具集
- MongoDB管理工具
- Dex – MongoDB索引优化工具
- Variety:MongoDB schema分析工具
- MongoDB工具MagicMongoDBTool使用介绍
- MySQL到MongoDB的同步工具
- MongoDB的tcpdump工具:mongosniff
- MongoLive:在Chrome里进行MongoDB实时监控
- Mongoid:一个MongoDB的Ruby ODM封装
- MongoDB客户端的选择
- CakePHP中的MongoDB使用
- Python调用MongoDB使用心得
- PHP与MongoDB:类库、框架与工具介绍
- MongoDB实战开发 【零基础学习,附完整Asp.net示例】
- 使用Bucardo从PostgreSQL同步数据到MongoDB
- PHP操作MongoDB时的整数问题及对策
- Windows下的MongoDB客户端MongoVUE
- mongodb c++ 起步
- mtop – 针对 MongoDB 的 top 命令
6.MongoDB 应用 教程
- 用MongoDB取代RabbitMQ
- MySQL和MongoDB设计实例对比
- MongoDB安全性初探
- MongoDB REST Api介绍
- MongoDB+Hadoop构建MapReduce运算系统
- 安全警示,一个简单的MongoDB注入
- QCon北京2011大会之:MongoDB开发应用实践
- 又一个MongoDB Schema Design的Slide
- MongoDB Schema Design
- 夜说mongodb
- 从MySQL到MongoDB(添加MongoDB循环插入数据方法)
- MongoDB中索引的用法
- 文档型数据库设计模式-如何存储树形数据
- Mongo Beijing 2011 Slide分享—From MySQL To MongoDB
7.MongoDB性能与优化
- 深入MongoDB精髓技巧
- MongoDB容量规划
- 五步优化你的MongoDB
- MongoDB ObjectId的优化
- MongoDB智能查询优化的问题
- MongoDB 索引数据类型优化,节省60%内存
- MongoDB性能优化之连接优化
- MongoDB性能优化十大指标
- 如何解决MongoDB的PHP扩展不支持64位整数的问题
- MongoDB1.6版本与最新1.8版本性能测试——写入篇
- 记一次MongoDB性能问题,附原理解析
- MongoDB亿级数据量的性能测试
- 用Pre-Splitting提升MongoDB Auto-Sharding效率
8.MongoDB 部署、运维与 监控
- MongoDB运行状态、性能监控,分析
- 使用Cacti监控MongoDB和Redis
- 10gen发布MongoDB监控系统MMS(附使用教程)
- MongoSpy, MongoWatch及MongoDB数据压缩
- Warning:MongoDB Replica Sets配置注意事项
- MongoDB部署与运维
- MongoDB Administration
- MongoDB集群硬件指南 – 在EC2、EBS上构建你的数据库集群
- MongoDB Auto-Sharding 的问题
- 压缩 MongoDB 的数据文件
- 监控你的MongoDB(MongoSV 精华摘录)
- 为什么需要超过7个结点的Replica Sets?
- MongoDB Replica Sets 简明搭建教程
- MongoDB的备份方式
- Mongo Database Profiler
9.MongoDB新闻
- 用还是不用MongoDB?悲催用户 PK 10gen CTO
- MongoDB的局限性与不足
- 10gen获得红杉资本牵头的2000万美元融资
- Mongo Search:一个搜索MongoDB文档的Chrome插件
- MongoDB云服务价格对比
- 从Google Trends看MongoDB,北京关注度居首位
- mongly:一个简洁的MongoDB教学网站
- Cinderella 提供对MongoDB、Redis的支持
- *nix、node.js、MongoDB 下一代的LAMP
- MongoDB Ruby 客户端升级,性能大幅提升
- MongoFR会议精华:视频及幻灯片
- MongoDB1.9.1新功能预告:提示符小优化PS1++
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐