前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongoose 更新修改数据: findOneAndUpdate 的使用

mongoose 更新修改数据: findOneAndUpdate 的使用

作者头像
@零一
发布2021-01-29 16:07:14
5.5K0
发布2021-01-29 16:07:14
举报
文章被收录于专栏:前端印象前端印象

mongoose的更新数据操作: findOneAndUpdate

前言

在使用mongoose操作mongodb数据库时,会遇到最基本的增删改查这四个额操作,相比起来这四个操作里, ’ 改 ’ 这个操作是最复杂的,我也用花了点时间研究了一下 findOneAndUpdate 的简单使用,接下来给大家讲解一下。

正文

基本语法

Model.findOneAndUpdate([(conditions, doc, [options], [callback])]

  • conditions 第一个参数是一个对象参数,是用于查询与之相匹配的数据用的
  • doc 第二个参数也是一个对象参数,用于修改查询到的数据中的某条信息
  • options 第三个参数也是一个对象参数,主要用于设定匹配数据与更新数据的一些规定,比较复杂,一般用不到
  • callback 第四个参数也就是我们最熟悉的回调函数,函数默认传入两个参数,err、data。当数据库发生错误的时候传回一个err,若数据库正常,err为空;当正常根据第一个参数查询到相关数据并成功修改了我们设定的数据,data返回修改前的数据信息,若根据第一个参数没有查询到相关数据,data为null

示例

这里我就不做任何的数据库的连接、设计数据结构、挂载到模板等操作了

  • 数据库
代码语言:javascript
复制
//假设这是我们数据库里的数据
[
	goods: [
		{
			name: '苹果',
			price: 5
		},
		{
			name: '香蕉',
			price: 3
		},
		{
			name: '菠萝',
			price: 7
		}
	]
]
  • 对数据库信息进行修改更新
代码语言:javascript
复制
Model.findOneAndUpdate({
	name: '香蕉'
}, {
	$set: {
		price: 10
	}
}, {}, function(err, data) {
	if(err) {
		console.log('数据库发生错误')
	}
	else if(!data) {
		console.log('未查找到相关数据')
		console.log(data)
		
	}
	else if(data){
		console.log('修改数据成功')
		console.log(data)
	}
})

我来稍微讲解一下这个例子

  1. 第一个参数conditions,用于查询我们数据库中name为香蕉的数据
  2. 第二个参数doc, set的作用是用来指定一个键并更新键值,若键不存在并创建。 所以我们在set中设置了将我们查询到的数据的price改为10
  3. 第三个参数options,因为简单使用没用到,我就只给了个空对象
  4. 第四个参数callback, if(err) 是用于判断数据库是否发生错误,若数据库没发生错误,err为空,执行下一条语句;若数据库发生错误,err为错误对象,不为空,执行该条语句,打印' 数据库发生错误 ' if(!data)用于判断是否正确查找到与我们第一个参数匹配的相关数据,若没查找到,data为null,!data不为空,执行该条语句,打印' 未查找到相关数据 ' 和一个 null;若查找到了,data为查找到的数据,!data为空,执行下条语句 if(data)用于处理与if(!data)相反的操作,查询到相关数据,则data不为空,执行该条语句,打印 ' 修改数据成功 ' 和 我们查询到的该条数据信息;
  • 打印结果
代码语言:javascript
复制
数据修改成功
{
	name: '香蕉',
	price: 3
}
  • 再查看一下数据库里的数据 可以看到数据库里的香蕉的price已经被改为10了
代码语言:javascript
复制
//假设这是我们数据库里的数据
[
	goods: [
		{
			name: '苹果',
			price: 5
		},
		{
			name: '香蕉',
			price: 10         //修改后的数据
		},
		{
			name: '菠萝',
			price: 7
		}
	]
]

结束语

好了 mongoose中修改数据的操作命令 findOneAndUpdate 的简单使用 就是如此,希望对大家有所帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mongoose的更新数据操作: findOneAndUpdate
  • 前言
  • 正文
    • 基本语法
      • 示例
      • 结束语
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档