📅  最后修改于: 2023-12-03 14:44:23.179000             🧑  作者: Mango
Mongoose 是一个优秀的 MongoDB ODM 库,方便我们以面向对象的方式与 MongoDB 进行交互。 Mongoose 提供了 Schema、Model、Query 和 Document 等一系列 API,让我们可以方便地对数据库进行操作。
在使用 Mongoose 保存文档时,我们需要注意的是如果我们需要获取保存后的文档的 ID,我们需要使用 save
方法后才能得到 ID,因为在 save 方法之前,Mongoose 并没有为文档分配一个 ID。
下面是如何在 Mongoose 中保存文档并获取 ID 的例子。
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// 定义了一个用户文档的 Schema
const userSchema = new Schema({
name: { type: String, required: true },
age: Number,
});
// 将 Schema 编译成 Model
const User = mongoose.model('User', userSchema);
// 实例化 User Model,保存用户文档并获取 ID
const user = new User({ name: 'John', age: 21 });
user.save(function(err, savedUser) {
if (err) {
console.error(err);
} else {
console.log('保存的用户信息:' + savedUser);
console.log('保存的用户 ID 为:' + savedUser._id);
}
});
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
name: { type: String, required: true },
age: Number,
});
用户文档的 Schema 中包含了两个字段:name
和 age
。其中,name
字段是必填字段,必须提供。
const User = mongoose.model('User', userSchema);
在定义 Model 时,第一个参数是 Model 的名称,第二个参数是对应的 Schema。
const user = new User({ name: 'John', age: 21 });
在创建文档对象时,我们需要提供一些必填字段的值,以及可选字段的值。这里我们提供了 name
和 age
两个字段的值。
save
方法保存文档对象并获取 ID。user.save(function(err, savedUser) {
if (err) {
console.error(err);
} else {
console.log('保存的用户信息:' + savedUser);
console.log('保存的用户 ID 为:' + savedUser._id);
}
});
调用 save
方法后,如果保存成功,第二个参数 savedUser
将是保存成功后的文档对象,其中 _id
字段为保存后的文档 ID。
在 Mongoose 中,使用 save
方法后才能获取保存后的文档 ID。我们需要注意,如果没有正确处理错误,可能导致保存失败,从而无法获取文档 ID。因此,在使用 save
方法时,务必正确处理可能出现的错误。