使用mongodb实现简单的读写操作

 更新时间:2023年12月08日 09:37:26   作者:威赞  
这篇文章主要给大家介绍了如何使用mongodb实现简单的读写操作,本文适合初学者,特别是刚刚安装了mongodb数据库的朋友,或在atlas刚拿到免费集群的朋友,文中有详细的代码示例供大家参考,需要的朋友可以参考下

引言

本文适合初学者,特别是刚刚安装了mongodb数据库的朋友,或在atlas刚拿到免费集群的朋友。

拿到数据库,心情很激动,手痒难耐。特别想向数据库插入几条数据库试试。即使是深夜完成了安装,也忍不住想去完成这些操作。看到数据库里的记录,心中会更有成就感。

这是一个里程碑的时刻,代表着mongodb学习的开始。或者其他任何一种数据库技能学习的开始。

本文基于官方文档,整理出mongodb简单的增删改查操作。

创建操作

创建操作,是向集合中添加一个新的文档。mongodb的一条记录称为一个文档。文档是类似JSON结构的BSON结构的键值对对象,支持字符串,数值,布尔类型,时间,数组,对象等类型。多条文档构成了mongodb的一个集合。

当插入文档的集合不存在时,mongodb自动创建这个集合。

Mongodb提供了两种文档插入方法

db.collection.insertOne()
db.collection.insertMany()
 
//举例
db.users.insertOne({
  name:"sue",
  age: 26,
  gentle: "Female"
})
 
db.users.insertMany([{
  name:"sue",
  age: 26,
  gentle: "Female"
},{
  name:"james",
  age: 28,
  gentle: "Male"
}])

其中集合名称是users, 文档是带有三个字段name, age, gentle的对象。

使用insertOne方法,插入一条文档,参数是一个对象。而使用insertMany方法,插入多条文档,参数是一个数组。

Mongodb对单个文档的操作是原子性的,即对于单个文档的操作,只有成功和失败两个结果。成功, 则数据保存到数据库。失败,则没有数据保存到数据库。不会出现保存了一半这样的中间状态。insertOne向数据库中插入一条文档记录,是原子操作。insertMany向数据库插入多条文档,不是原子操作。

查询操作

查询操作,是从数据库的某个集合中读取文档。

mongodb提供find()方法,实现从集合中读取文档数据。

db.collection.find()

在find()方法中,可以带有参数,作为查询参数,限定查询返回值。如对前面插入的user集合进行查询

//查询所有数据
db.users.find()
//查询name为sue的数据
db.users.find({
  name: "sue"
})
//限制返回数量
db.users.find().limit(5)

修改操作

修改操作更新数据库制定集合中符合查询条件的文档数据。mongodb提供了几种方法来支持数据的更新

//更新一条数据
db.collection.updateOne()
//更新多条数据
db.collection.updateMany()
//替换一条数据
db.collection.replaceOne()

用户在修改操作的第一个参数指定查询过滤条件,在第二个参数中指定修改字段和目标值。如修改集合users中name为james的age字段

db.users.updateOne({name: "james"},{$set: {"age": 30}})

其中过滤条件{name: "james"}用来筛选集合中符合name是james的文档。使用$set设置更新的字段和字段值。

Mongodb对单个文档的修改是原子性的,因此updateOne(), replaceOne()方法,都是原子操作。updateMany()方法操作单条记录,也是原子性的,操作多条记录时,是非原子操作。

删除操作

删除操作,是删除集合中的文档。mongodb提供了两种方法来删除文档。

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

删除方法的参数中指定查询过滤条件,使用该条件查询出来的结果会被删除。如删除users表中男性数据。

db.users.deleteMany({gentle: 'Male'})

删除users表中name是james的数据

db.users.deleteOne({name: 'James'})

Mongodb中对单个文档的操作是原子的。所以deleteOne是原子操作, deleteMany不是原子操作。

一点建议

数据库操作中,修改操作和删除操作,都是比较危险的操作。数据一旦修改保存到数据库,很难恢复到修改前的样子。对于单条数据,恢复起来容易。对于批量数据的修改更新,请使用查询语句反复确认修改删除范围后,再执行操作。并准备好数据恢复脚本。

以上就是使用mongodb实现简单的读写操作的详细内容,更多关于mongodb读写操作的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot 集成MongoDB实现文件上传功能

    SpringBoot 集成MongoDB实现文件上传功能

    这篇文章主要介绍了SpringBoot 集成MongoDB实现文件上传,主要通过示例代码记录文件上传的步骤,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • MongoDB的安装方法图文教程

    MongoDB的安装方法图文教程

    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。本文给大家介绍了mongodb的安装教程,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • mongodb 中rs.stauts()命令参数解析

    mongodb 中rs.stauts()命令参数解析

    MongoDB的rs.status()命令是查看副本集状态的重要工具,它可以展示副本集中各个成员的角色、健康状态、同步进度等关键信息,本文介绍mongodb 中rs.stauts()命令参数解析,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • MongoDB系列教程(四):设置用户访问权限

    MongoDB系列教程(四):设置用户访问权限

    这篇文章主要介绍了MongoDB系列教程(四):设置用户访问权限,本文讲解了在Windows环境下如何创建用户认证,需要的朋友可以参考下
    2015-05-05
  • MongoDB插入数据的3种方法

    MongoDB插入数据的3种方法

    在MongoDB中,db.collection.insert()方法添加一个新文档到集合中。另外,db.collection.update()方法和db.collection.save()方法也能通过upsert操作添加新文档。upsert操作执行更新现有文档或者当文档不存在时插入一个新文档。
    2014-05-05
  • MongoDB 删除文档的方式(删除一个、批量删除)

    MongoDB 删除文档的方式(删除一个、批量删除)

    这篇文章主要介绍了MongoDB 删除文档的方式(删除一个、批量删除),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 分布式文档存储数据库之MongoDB备份与恢复的实践详解

    分布式文档存储数据库之MongoDB备份与恢复的实践详解

    这篇文章主要介绍了分布式文档存储数据库之MongoDB备份与恢复,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • MongoDB的mongo shell常用操作方法及操作脚本笔记

    MongoDB的mongo shell常用操作方法及操作脚本笔记

    mongo shell即相当于SQL语句在关系型数据库中的作用,MongoDB使用JavaScript作为shell操作命令,这里我们就来整理MongoDB的mongo shell常用操作方法及操作脚本笔记
    2016-07-07
  • MongoDB 3.6.5常见的安装失败原因和解决办法

    MongoDB 3.6.5常见的安装失败原因和解决办法

    在开发过程中,可能会用到 MongoDB 数据库,在进行MongoDB的安装过程中,可能会遇到各种各样的问题导致安装失败,本文将针对常见的安装失败情况(,例如端口占用、系统文件问题和版本兼容问题等)进行分析,并提供解决方案和相应的代码示例
    2024-03-03
  • mongodb中根据时间过滤进行查询的操作方法

    mongodb中根据时间过滤进行查询的操作方法

    这篇文章主要介绍了mongodb中简单的根据时间过滤进行查询,文末补充介绍了如何根据日期过滤/查找MongoDB中的记录,结合实例给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论