当前位置: 首页 > news >正文

MongoDB 的增、查、改、删

Monogo使用

  1. 单条增加
db.member.insertOne({"name":"张三","age":18,"create":new Date()})
db.member.insert({"name":"李四1","age":18,"create":new Date()})
db.member.insertOne({"_id":1,"name":"张三","age":18,"create":new Date()})
  1. 多条增加
db.member.insertMany([{"_id":2,"name":"李四","age":18,"create":new Date()},{"_id":3,"name":"王五","age":18,"create":new Date()}])

查询

这个查询,每一块都是一个个复杂的json串组合而成

  1. 查询age=18
# 缩写
db.member.find({age:18});
# 完整写法
db.member.find({age: {$eq: 18}
});
  • 查询 _id>2 并且 age =18
# 缩写
db.member.find({_id :{$gt: 2}, age:18});
# 完整写法
db.member.find({$and: [{_id: {$gt: 2}}, {age: {$eq: 18}}]
})
  1. 排序
  • -1 是降序
  • 1 是升序
db.member.find({_id :{$gt: 2}}).sort({_id:-1});
  1. 分页
  • skip:跳过指定记录数
  • limit:返回结果数量
# 跳过第一条后,返回3条数据
db.member.find().skip(1).limit(5);
#假如有数据1,2,3,4,5
#返回 2,3,4
  1. 返回指定字段
  • 0代表不显示
  • 1代表显示
    ** 注意:_id默认是显示的,只有_id不显示是设置0,其他字段都不可以设置0 **

格式:find({查询条件,可以空},{显示的字段:1})

db.member.find({},{age:1})
  1. 查询操作符
    | 操作符 | 描述 | 对比mysql |
    |–|–|–|
    |$eq| 等值比较,find({_id :{ KaTeX parse error: Expected 'EOF', got '}' at position 6: eq: 1}̲}) 等价于 find({_i…ne| 不等于指定值,find({_id :{ KaTeX parse error: Expected 'EOF', got '}' at position 6: ne: 1}̲}) |id != 1 或 i…in| 数组中包含 ,find( { _id :{ KaTeX parse error: Expected 'EOF', got '}' at position 13: in: [ 1,2 ] }̲ } ) |id in ( 1…nin| 数组中不包含,find( { _id :{ KaTeX parse error: Expected 'EOF', got '}' at position 14: nin: [ 1,2 ] }̲ } ) |id not in…gt| 大于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt: 1}̲})| id > 1| |get| 大于等于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 7: gte: 1}̲}) |id >= 1| |lt| 小于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt: 1}̲}) |id < 1| |lte| 小于等于指定值,find({_id :{KaTeX parse error: Expected 'EOF', got '}' at position 7: lte: 1}̲})| id <= 1| |and| 与(并且)查询,find({$and:[ { _id:{ $gt:1} },{ _id:{ KaTeX parse error: Expected 'EOF', got '}' at position 5: lt:4}̲ } ]})| id > 1 …or| 或查询,find({KaTeX parse error: Expected 'EOF', got '}' at position 27: …1 },{ _id: 3} ]}̲) |id = 1 or id…not| 非查询,非小于3的数据 find({_id :{$not :{ KaTeX parse error: Expected 'EOF', got '}' at position 7: lt: 3 }̲ } })| id >= 3|…nor| 即非查询,find( { KaTeX parse error: Expected 'EOF', got '}' at position 44: …}, { _id: 3 }] }̲ )| (id != 1 an…all| 同时包含,查询tag同时包含3和9的数据,tag是一个数组,find({tag:{KaTeX parse error: Expected 'EOF', got '}' at position 10: all:[3,9]}̲}) | | |elemMatch | 有一个元素匹配即可,find({job:{KaTeX parse error: Expected 'EOF', got '}' at position 44: …mpany:‘xiaomi’}}̲}) || |size| 匹配数组大小,find({tag:{KaTeX parse error: Expected 'EOF', got '}' at position 7: size:3}̲}) || |slice| 返回数组中第几个元素,find({job:{KaTeX parse error: Expected ‘EOF’, got ‘}’ at position 43: …ompany:‘baidu’}}̲},{name:1,job:{slice:1}})||
    |KaTeX parse error: Expected '}', got 'EOF' at end of input: …文档,find({name:{exists:true}}) | |

修改

格式 : db.集合.update(query, update, options)

  • query:更新的查询条件
  • update:要更新的内容
  • options:更新的选项
  1. 更新单个文档
    更新_id等于3的年龄
db.member.update({_id:3},{$set:{age:11}})
db.member.updateOne({_id:3},{$set:{age:11}})
  1. multi更新多个文档
    **更新多个文档需要设置multi选项 :true,默认情况下mongo update命令在更新第一个文档后就返回。 **
db.member.update({age:19},{$set:{ name:‘zhang1’}},{‘multi’:true});
#要不你换成这样子写,就可以更新多条
db.member.updateMany({age:19},{$set:{ name:‘zhang33’}})
  1. upsert更新的字段不存在则插入
    ** upsert选项为true:如果更新文档不存在则创建文档,如果文档存在字段不存在则创建字段,都存在则更新**
db.member.update({_id:3}, { $set:{ address :‘北京’} } ,{upsert:true})
  1. indAndModify查询和修改
    ** 查询并修改指定值,注意先返回结果,后更新,返回的结果是旧数据 **
db.member.findAndModify({query:{name:‘张1’} , update:{ $set:{ ‘age’:18 } } })
  1. 查询并修改指定值,并返回新值
db.member.findAndModify({query:{name:‘张1’} , update:{ $set:{ ‘age’:18 } } })
操作符格式描述
$set{ $set : { filed : value} }指定一个键,并更新值
$unset{ $unset : { filed : 1} }删除一个键
$inc{ $inc : { filed : value} }对数值类型进行增减
$push{ $push : { filed : value} }将数值追加到数组中,若数组不存在则会进行初始化
$pushAll{ $pushAll : { filed : value_array} }追加多个值到数组内
$pull{ $pull : { filed : value} }从数组中删除指定元素
$addToSet{ $addToSet : { filed : value} }添加元素到数组中,具有排重功能
$pop{ $pop : { filed : 1} }删除数组第一个或最后一个
$rename{ $rename : { old_filed_name : new_filed_name } }修改地段名称
$bit{ $bit : { filed : {and :5} } }位操作,integer类型

删除

  1. 删除单个文档
db.member.deleteOne({_id:2})
  1. remove命令会删除匹配条件的全部文档,删除单个文档,可以根据_id 或者唯一值删除。
db.member.remove({name:‘张1’})
  1. 如果希望明确删除一个文档,需要指定justOne参数
db.member.remove({age:19},true)
  1. 删除多个文档
db.member.remove({age:19})
或
db.member.deleteMany({age:19})
  1. 删除全部文档
db.member.remove({})
或
db.member.deleteMany({})
或
db.member.drop()
# remove与deleteMany是对查询范围内的数据逐条删除,drop是删除整个集合(包括全部索引)drop更高效
  1. 删除并返回删除的数据findOneAndDelete

remove和deleteMany只能按照默认顺序删除,并返回确认信息。findOneAndDelete可以指定顺序删除文档和返回删除的内容

删除并返回db.member.findOneAndDelete({age:18})删除指定排序的数据db.member.findOneAndDelete({age:18},{sort:{_id:-1}})
http://www.lryc.cn/news/101057.html

相关文章:

  • mysql常用操作命令
  • 数学建模常见模型汇总
  • C#使用LINQ查询操作符实例代码(二)
  • jenkinsfile小试牛刀
  • C++ xmake构建
  • 推荐带500创作模型的付费创作V2.1.0独立版系统源码
  • wps图表怎么改横纵坐标,MLP 多层感知器和CNN卷积神经网络区别
  • rdb和aof
  • TCP网络通信编程之网络上传文件
  • Java中对Redis的常用操作
  • 链路追踪设计
  • Golang之路---02 基础语法——常量 (包括特殊常量iota)
  • Pytest学习教程_装饰器(二)
  • redis的如何使用
  • MyBatis(二)
  • 【【51单片机AD转换模块】】
  • Longest Divisors Interval(cf)
  • 配置文件、request对象请求方法、Django连接MySQL、Django中的ORM、ORM增删改查字段、ORM增删改查数据
  • CTF学习路线指南(附刷题练习网址)
  • 【Rust 基础篇】Rust默认泛型参数:简化泛型使用
  • 从源码分析Handler面试问题
  • shell编程 变量作用域
  • 华为eNSP:isis的配置
  • FS.05-SAS-UP-Methodology
  • Jmeter并发测试
  • 【JVM】浅看JVM的运行流程和垃圾回收
  • 使用低代码开发,需要注意哪些?
  • 面试总结-Redis篇章(八)——Redis分布式锁
  • 压力测试-商场项目
  • IDEA中文UT方法执行报错问题、wps默认保存格式