在使用mongoose操作mongodb数据库时,会遇到最基本的增删改查这四个额操作,相比起来这四个操作里, ’ 改 ’ 这个操作是最复杂的,我也用花了点时间研究了一下 findOneAndUpdate 的简单使用,接下来给大家讲解一下。
Model.findOneAndUpdate([(conditions, doc, [options], [callback])]
这里我就不做任何的数据库的连接、设计数据结构、挂载到模板等操作了
//假设这是我们数据库里的数据
[
goods: [
{
name: '苹果',
price: 5
},
{
name: '香蕉',
price: 3
},
{
name: '菠萝',
price: 7
}
]
]
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)
}
})
我来稍微讲解一下这个例子
if(err) 是用于判断数据库是否发生错误,若数据库没发生错误,err为空,执行下一条语句;若数据库发生错误,err为错误对象,不为空,执行该条语句,打印' 数据库发生错误 '
if(!data)用于判断是否正确查找到与我们第一个参数匹配的相关数据,若没查找到,data为null,!data不为空,执行该条语句,打印' 未查找到相关数据 ' 和一个 null;若查找到了,data为查找到的数据,!data为空,执行下条语句
if(data)用于处理与if(!data)相反的操作,查询到相关数据,则data不为空,执行该条语句,打印 ' 修改数据成功 ' 和 我们查询到的该条数据信息;
数据修改成功
{
name: '香蕉',
price: 3
}
//假设这是我们数据库里的数据
[
goods: [
{
name: '苹果',
price: 5
},
{
name: '香蕉',
price: 10 //修改后的数据
},
{
name: '菠萝',
price: 7
}
]
]
好了 mongoose中修改数据的操作命令 findOneAndUpdate 的简单使用 就是如此,希望对大家有所帮助。