Mongoose 文档
Mongoose 是为node.js环境设计的MongoDB对象建模和处理工具。 Mongoose文档 表示与MongoDB数据库中存储的文档一对一映射。每个模型的实例都是一个文档。根据创建的模型,文档可以包含任意类型的数据。
下面的函数用于Mongoose文档:
- 检索: 可以使用不同的模型函数(如findOne(),findById())来检索文档。
const doc = MyModel.findById(myid);
- 保存 :调用保存函数来保存文档。该函数是异步的,应该等待执行完成。
await doc.save()
- 使用save()函数更新 :可以通过save()函数来更新文档,操作如下:
await MyModel.deleteOne({ _id: doc._id });
doc.firstname = 'gfg';
await doc.save();
- 使用查询进行更新 :文档可以通过查询进行更新,而无需调用保存函数。
await MyModel.findByIdAndUpdate(myid,{firstname: 'gfg'},function(err, docs){});
- 验证中 :文档在保存到MongoDB之前,一旦创建就会进行验证。
const schema = new Schema({ name: String, age: Number});
const Person = mongoose.model('Person', schema);
let p1 = new Person({ name: 'gfg', age: 'bar' });
// Validation will be failed
await p1.validate();
let p2 = new Person({ name: 'gfg', age: 20 });
// Validation will be successful
await p2.validate();
- 覆盖 :可以使用覆盖方法覆盖文档。
const doc = MyModel.findById(myid);
doc.overwrite({ fullname: 'gfg' });
await doc.save();
示例1 :在下面的示例中,我们将创建一个模型,将其保存到数据库中,然后检索它,更新文档并使用mongoose保存它。我们将使用node.js进行此示例。Node.js和npm应该已安装。
步骤1 :创建一个文件夹并初始化它:
npm init
步骤2 :在项目中安装mongoose。
npm i mongoose
项目结构如下:

步骤3 :创建一个名为index.js的文件。在index.js中连接到MongoDB。这里使用了MongoDB Compass。
index.js
const mongoose = require("mongoose");
// Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {});
// User model
const User = mongoose.model("User", {
name: { type: String },
age: { type: Number },
});
// Creating a new document
async function start() {
let user1 = new User({
name: "Geeks",
age: 20,
});
user1.save().then(async (doc) => {
if (doc) {
console.log("The document is saved successfully");
console.log(doc._id);
}
});
let user2 = await User.findOne({ name: "Geeks" });
user2.name = "GeeksforGeeks ";
user2.save().then(async (doc) => {
if (doc) {
console.log("The document is updated successfully");
console.log(doc._id);
}
});
}
start();
步骤4 : 现在在终端/命令提示符中使用以下命令运行代码以运行文件。
node index.js
输出: 代码的输出如下:

同时,MongoDB中的文档如下:

示例2:
在这个示例中,我们将尝试通过使用mongoose模式的“validate”方法显式验证文档。mongoose在将文档保存到数据库之前内部调用此方法。
请修改您在示例1中创建的index.js文件。
文件名:index.js
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,
required: true
},
age: {
type: Number,
min: 18
}
});
const Person = mongoose.model('Person', personSchema);
const person1 = new Person({ name: 'john', age: 'nineteen' });
(async () => {
await person1.validate();
})();
运行应用程序的步骤:
node index.js
输出:

参考: https://mongoosejs.com/docs/documents.html
极客教程