mongodb出征篇——sql增删改查大全

本文对比了MongoDB与MySQL在数据类型、SQL操作等方面的异同,涵盖了创建表、插入数据、查询、更新及删除等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面:mongodb作为一个非关系型数据库,不同于key-value的redis、有着类似于关系数据库的sql语言,并且支持灵活的存储数据类型。但是也存在着缺点,比如表与表之间的join关系、中文全文索引就不行。
环境:win7、mongodb:3.2.11

一、数据类型的对弈
基本概念mysqlmongo
数据库(database)db
表(table)collection
行(rows)document(Bson)
列(field)field
索引index
聚合group、count等
主键自动设为_id
二、sql的对比

1. 创建类

操作类型mysqlmongo
创建CREATE TABLE tablename(…)db.tablename.insert({name:’hebby’,age:10}) #insert时候自动创建表;也可以执行db.createCollection(‘tablename’)
更新(增加列)ALTER TABLE tablename ADD news DATETIMEdb.users.update({},{$set:{news:new Date()}},{muliti:true})
更新(删除列)ALTER TABLE tablename DROP COLUMN newsdb.users.update({},{$set:{news:”}},{muliti:true})
创建索引CREATE INDEX id_user_name ON users(name)db.createIndex({name:1},{name:’id_user_name’})
删除表DROP TABLE usersdb.users.drop()

2. 插入类

操作类型mysqlmongodb
单个插入INSERT INTO users(id,name) VALUES (2,’lili’);db.users.insert({id:2,name:’lili’})
批量插入INSERT INTO users(id,name) VALUES(2,’lili’),(3,’mimi’)db.users.insertMany([{id:2,name:’lili’},{id:3,name:’mimi’}])
批量插入INSERT INTO users(id,name) VALUES(2,’lili’),(3,’mimi’)db.users.insert([{id:2,name:’lili’},{id:3,name:’mimi’}])

3. 查询类

基础类型mysqlmongodb
SELECT * FROM usersdb.users.find()
SELECT id,name from usersdb.users.find({},{id:1,name:1,_id:0})
SELECT * FROM users WHERE name=’lili’db.users.find({name:’lili’})
SELECT * FORM users WHERE name !=’lili’db.users.find({name:{$ne:’lili’}})
SELECT * FROM users WHERE name=’lili’ AND age=10db.users.find({name:’lili’,’age’:10})
SELECT * FROM users WHERE name=’lili’ OR age=10db.users.find({$or:[{name:’lili’},{age:10}]})
SELECT * FROM users WHERE name='lili' AND age<10 OR type='off'db.users.find({name:'lili',$or:[{age:$gt:{age:10}},{type:'off'}]})
SELECT * FROM users WHERE age>10db.users.find({age:{$gt:10}})
SELECT * FROM users WHREE age<10db.users.find({age:{$lt:10}})
SELECT * FROM users WHERE name like “%li%”db.users.find({name:/li/})
SELECT * FROM users WHERE name like “li%”db.users.find({name:/^li/})
SELECT * FROM users WHERE name=’lili’ ORDER BY id DESCdb.user.find({name:’lili’}).sort({id:-1})
SELECT * FROM users WHERE name=’lili’ ORDER BY id ASCdb.user.find({name:’lili’}).sort({id:1})
SELECT COUNT(*) FROM usersdb.users.find().count()
SELECT COUNT(num) FROM usersdb.users.find({num:{$exists:true}}).count()
SELECT COUNT(num) FROM users WHERE age<10db.users.find({age:{$gt:10}}).count()
SELECT DISTINCT(name) FROM usesdb.users.distinct(name)
SELECT * FROM users LIMIT 1db.users.findOne()
SELECT * FROM usesdb.users.findMany()
SELECT * FROM uses limit 2 SKIP 10db.users.find().limit(2).skip(10)

4.更新类

操作类型mysqlmongodb
UPDATE users SET age=10 WHERE name=’lili’db.users.update({name:’lili’},{$set:{age:10}})
UPDATE users SET age=age+10 WHERE name=’lili’db.users.update({name:’lili’},{$inc:{age:10}})

5.删除类

操作类型mysqlmongodb
DELECT FROM users WHERE name=’lili’db.users.remove({name:’lili’})
DELECT FROM usersdb.users.remove({})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值