4.MongoDB中16个常用CURD

img

基本的CURD

作为一个非专业的DBA,我们只需要会一些基本的curd就行,专业的内容还是需要专业的人去干的。CRUD 也就是增删改查,这是数据库最基本的功能,查询还支持全文检索,GEO 地理位置查询等。

01创建库

无需单独创建,直接use进去

02创建表

无需单独创建,直接插入数据

03插入记录

// 单个文档插入到集合中
db.collection.insertOne()
// 多个文档插入到集合中
db.collection.insertMany()

// demo
db.collection.insertOne({"id":1,"name":"张三"})
db.collection.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

04更新记录

// 更新单条
db.collection.updateOne()
// 更新多条
db.collection.updateMany()

// demo
update user set name = "李四" where id = 1;
db.user.updateMany({"id":1}, {$set:{"name":"李四"}})

05删除记录

// 删除单条文档
db.collection.deleteOne()
// 删除多条文档
db.collection.deleteMany()

// demo
db.user.deleteMany({"id":1})

06删除库

// 先use 
db.dropDatabase()

07删除表

db.collection.drop()

08查询数据

db.collection.find( )
db.collection.findOne()

// demo
select * from user where name = "李四";
db.user.find({"name":"李四"})

// < 查询
select * from user where id < 2;
db.user.find({id:{$lt:2}})

// 比较查询
db.collection.find({ "field" : { $gt: value }}) // 大于: field > value
db.collection.find({ "field" : { $lt: value }}) // 小于: field < value
db.collection.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.collection.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.collection.find({ "field" : { $ne: value }}) // 不等于: field != value

// 包含查询
db.user.find({id:{$in:[1,2]}})  // id in(1,2)
db.user.find({id:{$nin:[3]}}) // id != 3

// or 查询
select * from user where id = 1 or name ='李四';
db.user.find($or:[{id:1},{name:'李四'}])

// 格式化结果
db.user.find().pretty()

09模糊查询

select * from user where name like "%李%";
db.user.find({name://})

select * from user where name  like "ste%";
db.user.find({name:/^/})

10分页查询

const pageNumber = 2; // 第几页
const pageSize = 10; // 每页多少条记录
// mysql
SELECT * FROM user LIMIT pageSize OFFSET (pageNumber - 1) * pageSize;
// mongodb
db.user.find({}).skip((pageNumber - 1) * pageSize).limit(pageSize);

注意:skip()、limilt()、 sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。

11排序

// 正排序查询  
select * from user order by id;
db.user.find().sort({id:1})

//逆排序查询  
select * from user order by id desc;
db.user.find().sort({id:-1})

12去重

select distinct(name) from user;
db.user.distinct('name')

13获取表记录数

db.user.count()
db.user.find({id:1}).count()

14取存储路径

explain select * from tname where id=3;          
db.tname.find({id=3}).explain()

15创建索引

//mysql
CREATE INDEX idx_name ON user (name);
ALTER TABLE user ADD INDEX idx_name (name);

// mongodb 
db.user.createIndex({ name: 1 },{ unique: true })

上面的例子中,{ name: 1 } 定义了索引的字段和排序方向(1 表示升序,-1 表示降序)。{ unique: true } 选项指定了这是一个唯一索引。

16查看索引

db.user.getIndexes()

相关推荐

  1. mongodb命令

    2024-03-17 05:40:03       31 阅读
  2. mongodb-命令

    2024-03-17 05:40:03       7 阅读
  3. 10python自动化脚本

    2024-03-17 05:40:03       31 阅读
  4. Linux 16脚本(初级)练习

    2024-03-17 05:40:03       19 阅读
  5. Hive函数_16时间日期处理

    2024-03-17 05:40:03       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 05:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 05:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 05:40:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 05:40:03       20 阅读

热门阅读

  1. 数据结构 第4章 串(一轮习题总结)

    2024-03-17 05:40:03       20 阅读
  2. npm install报错

    2024-03-17 05:40:03       19 阅读
  3. 数据结构-哈希表(一)

    2024-03-17 05:40:03       20 阅读
  4. List、Set、数据结构、Collections-笔记

    2024-03-17 05:40:03       22 阅读
  5. 供应RTC77601E芯片现货

    2024-03-17 05:40:03       21 阅读
  6. 指针基础 - golang版

    2024-03-17 05:40:03       21 阅读
  7. linux-centos如何配置临时ip

    2024-03-17 05:40:03       22 阅读