Mongoose Document Model.prototype.save()函数
Mongoose API 的 Model.save() 方法用于保存文档中所做的更改,并在集合中更新最新的更改。我们可以在 mongoose 集合的任何模型对象上使用 save() 方法。
语法:
Model.save()
参数: Model.save() 方法接受两个参数:
- options: 一个具有各种属性的对象。
- callback: 一个在执行完成后运行的回调函数。
返回值: Model.save() 函数返回一个 Promise。结果包含一个模型对象。
设置 Node.js 应用程序:
步骤 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤2: 在创建了NodeJS应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: 项目结构将如下所示:
数据库结构: 数据库结构将会如下所示,以下文件存在于集合当中。
示例1: 在此示例中,我们使用mongoose建立了一个数据库连接,并定义了一个名为userSchema的模型,它有两个列或字段“name”和“age”。最后,我们在User模型对象上使用save()方法,该方法将保存集合中“age”属性的更新值。
app.js: 在app.js文件中写下以下代码:
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let userSchema = new mongoose.Schema({
name: String,
age: Number,
});
// Defining userSchema model
let User = mongoose.model("User", userSchema);
User.findById("63203694182cd3c22ea480ff").then(doc => {
doc.age = 20;
doc.save().then(result => {
console.log(result)
})
});
运行程序的步骤: 在项目的根目录下执行以下命令来运行应用程序:
node app.js
输出:
{
_id: new ObjectId("63203694182cd3c22ea480ff"),
name: 'User1',
age: 20,
__v: 0
}
Robo3T GUI工具使用图形界面表示数据库:
示例2: 在这个示例中,我们使用mongoose建立了一个数据库连接,并定义了一个userSchema模型,它有两个列或字段“name”和“age”。我们定义了一个名为“updateDocument”的函数,以便我们可以通过异步函数利用save()方法的功能。
app.js: 将下面的代码写入app.js文件中:
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let userSchema = new mongoose.Schema({
name: String,
age: Number,
});
// Defining userSchema model
let User = mongoose.model("User", userSchema);
let updateDocument = async (age) => {
const doc = await User.findById("63203694182cd3c22ea480ff")
doc.age = age;
const result = await doc.save()
console.log(result)
}
updateDocument(10)
运行程序的步骤: 要运行应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
{
_id: new ObjectId("63203694182cd3c22ea480ff"),
name: 'User1',
age: 10,
__v: 0
}
使用Robo3T GUI工具的数据库GUI表示:
参考: https://mongoosejs.com/docs/api/model.html#model_Model-save