irpas技术客

MongoDB数据库的增删改查及基本操作_小粗腿Cc_mongodb 增删改查

网络投稿 5379

在mongodb的增删改查之前先简单列表一些数据库的基本操作,如下:

win+R调出“运行”,再输入“cmd”进入终端,最后输入“mongo”进入到mongodb环境即可进行各种数据库操作(前提是mangodb已安装好且是可用状态)查看数据库:show dbs查看当前操作的数据库:db 或者 db.getName()选择要操作的数据库:use jdzb(use + 数据库名)查看集合:show collections查看集合中的信息:db.COLLECTIONNAME/集合名称.find()

实际效果如下各图:

进入mongodb环境:mongo

查看所有数据库:show dbs?

?查看当前操作的数据库:db? 或? ? db.getName( )

?其余的就不一一展示了,大家可以自己去尝试哈!

(1)创建数据库

use 要创建的库名? 如:use test (若已有,则默认使用;没有则创建)添加数据才会创建成功:db.COLLECTION.insert(),其中id索引会自动递增

(2)选中已存在的数据库进行操作

选中数据库:use name删除数据库:db.dropDatabase()创建集合:db.createCollection(“集合名”)删除集合:db.集合名.drop() 增删改查(CRUD) 增:

(以下出现的inventory只是一个示范的集合名,根据自己集合名做修改即可)

?插入单条数据:

db.collection.insertOne( { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } } )

插入多条数据:

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" } } ]) 删:

?删除单条数据:

db.collection.deleteOne( <filter>, // 过滤条件 { writeConcern: <document>, collation: <document>, hint: <document|string> // Available starting in MongoDB 4.4 } )

删除多条数据:

db.collection.deleteMany( <filter>, { writeConcern: <document>, collation: <document> } )

实例:

下面的实例删除状态为“D”的第一个文档:

db.inventory.deleteOne( { status: "D" } )

以下实例从状态字段等于“A”的inventory集合中删除所有文档:

db.inventory.deleteMany({ status : "A" })

其中删除还有remove方法,大家有兴趣的话可以自己去官方了解一下,下面只做简单介绍:?

?db.COLLECTIONNAME.remove({条件}{配置项/可选})

配置项:justOne:true

没有配置项,就删除所有符合条件的

有配置项,就删除一项

改: db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )

参数说明:

query?: update的查询条件,类似sql update查询内where后面的。update?: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的upsert?: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。multi?: 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。writeConcern?:可选,抛出异常的级别。

实例:

先插入一条数据如下:

>db.col.insert({ title: '我是一条数据', description: '我是即将被修改的一条小数据', by: '小粗腿Cc', url: 'https://blog.csdn.net/weixin_45249263?spm=1000.2115.3001.5343', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })

接着我们通过 update() 方法来更新标题(title):

>db.col.update({'title':'我是一条数据'},{$set:{'title':'改你改你'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 输出信息 > db.col.find().pretty() { "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "改你改你", "description" : "我是即将被修改的小数据", "by" : "小粗腿Cc", "url" : "https://blog.csdn.net/weixin_45249263?spm=1000.2115.3001.5343", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } >

可以看到标题(title)由原来的 "我是一条数据" 更新为了 "改你改你"。

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

>db.col.update({'title':'我是一条数据'},{$set:{'title':'改你改你'}},{multi:true}) 查:

?数据库中常用的操作应该就是查询数据啦,难免因为需求不的通过就需要用到各种各样的查询条件,从而得到想要的数据。

查询所有:

db.collection.find()

下面的实例返回inventory集合中status等于"D"的所有文档:

db.inventory.find( { status: "D" } )

下面的案例返回inventory集合中status等于"A"或"D"的所有文档。

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

下面的案例返回inventory集合中status等于"A" 并且qty小于($lt)30的所有文档:

db.inventory.find( { status: "A", qty: { $lt: 30 } } )

下面的案例返回inventory集合中status等于"A" 或者qty小于($lt)30的所有文档。

db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )

下面的案例返回inventory集合中status等于**"A" 并且qty小于 ($lt) 30或者item** 是以p字符开头的所有文档。

db.inventory.find( { status: "A", $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ] } )

其他的查询条件大家可以去文档中查询,在此就不一一列举啦!

MongoDB-cn 中文文档


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #mongodb #增删改查 # #C #语言编写 #旨在为