IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

MySQL MongoDB SQL 对应

生活在別處 2012-08-31 00:01:29 累计浏览 3,469 次
本机暂存

FROM: SQL to Mongo Mapping Chart

  SQL statement Mongo statement
DDL CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, a INT, b INT, age INT, name CHAR(32)) implicit; can also be done explicitly with
db.createCollection("user1")
ALTER TABLE users ADD ... implicit
DROP TABLE users db.users.drop()
CREATE DATABSE db_name implicite
SHOW DATABASES show dbs
USE db_name use db_name
SHOW TABLES show collections
CREATE INDEX idx_name ON users(name) db.users.ensureIndex({name : 1})
CREATE INDEX idx_name_ts ON users(name, ts DESC) db.users.ensureIndex({name : 1, ts : -1})
DROP INDEX idx_name ON users db.users.dropIndex({name : 1, ts : -1})
SHOW INDEXES FROM users db.users.getIndexes()
DML 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 ASC db.users.find({age : 33}).sort({name : 1})
SELECT * FROM users ORDER BY name DESC db.users.find().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 age > 33 AND age <= 44 db.users.find({age : {$gt: 33, $lte : 44}})
SELECT * FROM users WHERE name LIKE "%Joe%" db.users.find({name : /Joe/})
SELECT * FROM users WHERE id IN (3, 4, 5) db.users.find({id, {$in : [3, 4, 5]}})
SELECT * FROM users WHERE id NOT IN (3, 4, 5) db.users.find({id, {$nin : [3, 4, 5]}})
SELECT * FROM users WHERE id = 2 db.users.find({id , {$all : [2]}})
SELECT * FROM users WHERE a = 1 AND name = 'Joe' db.users.find({ a : 1, name : 'Joe'})
SELECT * FROM users WHERE a = 1 OR b = 2 db.users.find({$or : [{a : 1}, {b : 2}]})
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 LIMIT 20, 10 db.users.find().limit(10).skip(20)
SELECT * FROM users LIMIT 1 db.users.findOne()
SELECT id FROM users u , users_extend e WHERE u.user_id = e.user_id AND e.c = 12345 db.users.find({"users_extend.c" : 12345}, {_id : 1})
SELECT customer.name FROM customers, orders WHERE orders.id = "q139" AND orders.custid = customers.id var o = db.orders.findOne({_id : "q139"})
var name = db.customers.findOne({_id : o.custid})
EXPLAIN SELECT * FROM users WHERE a = 3 db.users.find({a : 3}).explain()
UPDATE users SET a = 1 WHERE b = 2 db.users.update({b : 2}, {$set : {a : 1}}, false, true)
UPDATE users SET a = a + 2 WHERE b = 2 db.users.update({b : 2}, {$inc: {a : 2}}, false, true)
DELETE FROM users WHERE a = 3 db.users.remove({ a : 3})
DELETE FROM users db.users.remove()

MongoDB 中可用到的其它语句:

  • 存在某字段: db.users.find({a : {$exists : true}})
  • 不存在某字段: db.users.find({a : {$exists : false}})
  • 查询指定长度: db.users.find({name : {$size : 10}})
  • 查询字段是数组: db.users.find({name.first; : 'Joe', name.last : 'David'})
  • var cursor = db.users.find()
    while(cursor.hasNext()) printjson(curson.next())
  • db.users.find().forEach(printjson)
  • db.users.find().toArray()

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,250)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,397)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,163)
  4. Mysql监控指南 (累计阅读 21,350)
  5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,521)
  6. 如何查找消耗资源较大的SQL (累计阅读 15,209)
  7. 什么是全栈工程师? (累计阅读 14,038)
  8. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,056)
  9. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  10. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,904)