Mongoose查询 Model.updateOne() 函数
Mongoose API的 查询 Model.updateOne() 函数 用于使用“update”对象中提到的信息更新现有文档。它只更新返回的第一个符合筛选条件的文档。
语法:
Model.updateOne(filter, update, options, callback )
参数:
它接受上面提到的以下4个参数,并进行如下描述:
- filter: 一个mongoose对象,用于指示要更新的现有文档。
- update: 一个mongoose对象,将更新现有文档中的数据。
- options: 一个可选的mongoose对象,派生自Query.prototype.setOptions()。
- callback: 一个回调函数,接受两个参数:error和writeOpResult。
返回类型:
它以一个Query对象的形式返回响应。
设置Node.js Mongoose模块:
步骤1:
使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:
npm install mongoose
以下示例将演示 updateOne()方法 。
示例1: 在这个示例中,我们将使用此方法来更新一个年龄为”19″的已存在的文档。
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers',
{
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err)
: console.log('Connected to database'));
const personSchema = new mongoose.Schema({
name: {
type: String,
select: false
},
age: {
type: Number,
}
});
const personsArray = [
{
name: 'Luffy',
age: 19
},
{
name: 'Nami',
age: 30
},
{
name: 'Zoro',
age: 35
}
]
const Person = mongoose.model('Person', personSchema);
(async () => {
await Person.insertMany(personsArray);
const res = await Person.updateOne({ age: 19 }, { age: 23 });
console.log(res.modifiedCount);
})()
运行应用程序的步骤: 从项目的根目录中使用以下命令运行应用程序:
node main.js
输出:
使用MongoDB Compass对数据库进行GUI表示:
示例2: 在此示例中,我们将使用此方法来更新名为“Luffy”的现有文档。
const mongoose = require('mongoose')
// Database connection
mongoose.connect('mongodb://localhost:27017/query-helpers',
{
dbName: 'event_db',
useNewUrlParser: true,
useUnifiedTopology: true
}, err => err ? console.log(err)
: console.log('Connected to database'));
const personSchema = new mongoose.Schema({
name: {
type: String,
select: false
},
age: {
type: Number,
}
});
const personsArray = [
{
name: 'Luffy',
age: 19
},
{
name: 'Nami',
age: 30
},
{
name: 'Zoro',
age: 35
}
]
const Person = mongoose.model('Person', personSchema);
(async () => {
await Person.insertMany(personsArray);
const res = await Person.updateOne(
{ name: 'Luffy' }, { name: 'Shanks' });
console.log(res.modifiedCount);
})()
运行应用程序的步骤: 从项目的根目录使用以下命令来运行应用程序:
node main.js
输出:
使用MongoDB Compass的数据库GUI表示:
参考: https://mongoosejs.com/docs/api.html#model_Model-updateOne