251_Mongodb_增删改查_增_删

网友投稿 582 2022-05-29

MongoDB 操作

1 通用操作数据库、集合

db # 显示当前数据库 use dataBaseName # 如果dataBaseName不存在,在插入数据时将会创建数据库 show dbs # 显示当前实例中的数据库 db.dropDatabase() # 删除当前选择的库 db.createCollection("runoob") # 显式的创建runoob集合 show tables # 显示当前数据库中的集合信息 show collections db.runoob.drop() # 删除runoob集合

2 创建集合方式

1 直接插入文档

2 使用db.createCollection()

db.createCollection(,) 参数说明 name 创建的集合名词 options: capped: 若设置为true, 必须搭配size使用,创建固定集合 size 搭配capped 使用,限制集合的大小, 文档超过设置的大小, mongodb会自动删除旧文档腾空间 max: 固定集合中可存文档数 validator 设置集合具有数据校验功能 validationlevel 校验时对现有文档的严格程度 autoindexid: 若设置为false, 不会自动将_id字段创建为索引 4.0后不能在local外数据库中设置该选项 storageEngine: 允许用户创建集合使用不同的存储引擎 indexOptionDefaults 设定索引使用的存储引擎

创建固定集合 db.createCollection( “bob” : {capped:true, size:2000, max:200}) #大小 2000 byte, 数量200 查询是否是capped db.xxxName.isCapped() 删除集合 db.collection.drop({writeConcern: } ) db.xxxx.drop() 查询集合 Show collections Show tables

3 增_插入

新文档添加到集合中。如果该集合当前不存在,则插入操作将创建该集合。

db.collection.insertOne() #插入单个文档

db.collection.insertMany() #插入多个文档

db.collection.insert() #插入单条或多个文档

插入操作行为影响:

自动创建不存在的集合、数据库,例如这里的inventory集合

如果不指定,自动生成主键_id及其值

写操作都是基于单个文档级别的原子操作

251_Mongodb_增删改查_增_删

确认写操作级别,在分片集群中我们需要关注

MongoDB下新建文档的语法

db.collection.insert( , { writeConcern: , ordered: } ) documents必填,表示需要插入的文档/数组,可以是一个{doc}/多个文档[{doc1},{doc2},{doc3}] writeConcern可选项,写入策略,集群时使用 ordered:是否有序插入,默认是True,表示多个文档是否按照文档顺序插入,若有序 MongoDB不再插入后续文档,若无序 继续插入后续文档 特点 1 如果没有指定数据库,自动创建一个test 数据库 2 没有指定集合,自动创建集合 3 没有指定 _id字段, 新增一个_id字段,objectId类型,且不能重复,可以是数字/字符串类型

db.inventory.insertOne( { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } } ) db.inventory.insertOne( {item: "nike" , qty: 200, tags:["cotton", "glass"], size: {h:30, w: 40, uon: "inch"}}) db.inventory.insertMany([ { item: "journal", qty: 25, tags: ["blank", "red", "small"], size: { h: 14, w: 21, uom: "cm" } }, { item: "mat", qty: 85, tags: ["gray", "yellow", "green"], size: { h: 27.9, w: 35.5, uom: "cm" } }, { item: "mousepad", qty: 25, tags: ["gel", "blue", "big"], size: { h: 19, w: 22.85, uom: "cm" } } ]) db.inventory.insertMany([ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" }, { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }, { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }, { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" } ]);

Save() 方法

与 insert不同的是, insert() 插入主键相同会报错, save()方法插入会覆盖相同主键的文档 语法 db.collection.save(, {writeConcern: }) 操作同 insert()

4 删除操作

删除文档的方式

db.collection.remove()  可以删除只读条件的文档

db.collection.deleteMany()只能删除一个文档 类似 remove justone: false

db.collection.deleteOne()  只能删除一个文档 类似 remove justone: true

remove( ,{ justOne: , writeConcern: , collation: }) Justone 可选参数 默认false, 表示文档与删除条件匹配时, 是否仅删除第一个文档 False 表示删除匹配所有文档, ture 表示删除匹配第一个文档 # 删除 db.inventory.remove({"qty": 100}, {"justOne":true})

删除操作行为影响:

集合中的所有文档都被删除,索引不会删除

写操作都是单个文档级别的原子操作

删除文档的两种方式

# 删除 db.inventory.remove({"qty": 100}, {"justOne":true}) # 删除所有文档 db.inventory.deleteMany({}) db.inventory.deleteMany({status: "A"}) # 删除单个文档 db.inventory.deleteOne( { status: "D" } ) //条件{status: “D”}

MongoDB 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【愚公系列】2021年12月 Java教学课程 30-static关键字
下一篇:Ubuntu 安装Qt
相关文章