Mongoose 文档

Mongoose 文档

Mongoose 是为node.js环境设计的MongoDB对象建模和处理工具。 Mongoose文档 表示与MongoDB数据库中存储的文档一对一映射。每个模型的实例都是一个文档。根据创建的模型,文档可以包含任意类型的数据。

下面的函数用于Mongoose文档:

  • 检索: 可以使用不同的模型函数(如findOne(),findById())来检索文档。
const doc = MyModel.findById(myid);
JavaScript
  • 保存 :调用保存函数来保存文档。该函数是异步的,应该等待执行完成。
await doc.save()
JavaScript
  • 使用save()函数更新 :可以通过save()函数来更新文档,操作如下:
await MyModel.deleteOne({ _id: doc._id });

doc.firstname = 'gfg';
await doc.save();
JavaScript
  • 使用查询进行更新 :文档可以通过查询进行更新,而无需调用保存函数。
await MyModel.findByIdAndUpdate(myid,{firstname: 'gfg'},function(err, docs){});
JavaScript
  • 验证中 :文档在保存到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();
JavaScript
  • 覆盖 :可以使用覆盖方法覆盖文档。
const doc = MyModel.findById(myid);
doc.overwrite({ fullname: 'gfg' });
await doc.save();
JavaScript

示例1 :在下面的示例中,我们将创建一个模型,将其保存到数据库中,然后检索它,更新文档并使用mongoose保存它。我们将使用node.js进行此示例。Node.js和npm应该已安装。

步骤1 :创建一个文件夹并初始化它:

npm init
JavaScript

步骤2 :在项目中安装mongoose。

npm i mongoose
JavaScript

项目结构如下:

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();
JavaScript

步骤4 : 现在在终端/命令提示符中使用以下命令运行代码以运行文件。

node index.js
JavaScript

输出: 代码的输出如下:

Mongoose 文档

同时,MongoDB中的文档如下:

Mongoose 文档

示例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();
})();
JavaScript

运行应用程序的步骤:

node index.js
JavaScript

输出:

Mongoose 文档

参考: https://mongoosejs.com/docs/documents.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册