Mongoose Document API

Mongoose Document API

Mongoose 文档 对应于 MongoDB 文档 的一对一关系。Mongoose 文档基本上是模型的一个实例。

首先需要安装 mongoose 模块:

步骤1: 您需要访问 mongoose 模块的链接。您可以使用以下命令进行安装。

npm install mongoose

步骤2: 完成后,创建一个文件夹,并在文件夹中创建一个文件,例如, index.js , 使用以下命令来运行该文件。

node index.js

步骤3: 同时也不要忘记在另一个终端标签页上使用以下命令启动MongoDB服务器。

mongod

现在,让我们看一下它是如何工作的:

1. 创建一个新的文档: 要创建一个新的文档,您需要创建一个 mongoose model,然后使用该 model,您可以创建一个新的文档。要将其保存到数据库中,你需要使用 save() 方法保存一个文档,或者使用 insertMany() 方法插入多个文档。

示例: 在下面的示例中,我们将创建一个新的文档。打开 index.js 文件,然后写入以下代码:

const mongoose = require("mongoose");
 
// Database connection
mongoose.connect("mongodb://127.0.0.1:27017/geeksforgeeks", {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});
 
// User model
const User = mongoose.model("User", {
    name: { type: String },
    age: { type: Number },
});
 
// Creating a new dummy user document
const newUser = new User({
    name: "Ayush",
    age: 20,
});
 
// Save it to the database
newUser.save((err, res) => {
    if (err) return handleError(err);
    else return console.log("Result: ", res)
});
 
// For inserting multiple documents
User.insertMany(
    [
        {
            name: "Rishu",
            age: 21,
        },
        {
            name: "Megha",
            age: 24,
        },
        {
            name: "Aman",
            age: 16,
        },
        {
            name: "Riya",
            age: 18,
        },
    ],
    (err, res) => {
        if (err) return handleError(err);
        else return console.log("Result: ", res)
    }
);

运行该应用程序的步骤: 在终端中输入以下代码启动服务器:

node index.js

输出:

Mongoose Document API

以上是数据库中的示例数据 在函数执行后 ,您可以使用 MongoDB compass终端 来查看数据库:

Mongoose Document API

2. 检索文档: 要检索一个 文档 ,我们需要使用 findOne() 方法。它以条件作为参数,这是完全可选的。

示例: 在下面的示例中,我们将检索文档。打开index.js文件并写入以下代码:

const mongoose = require('mongoose');
 
// Database connection
mongoose.connect('mongodb://127.0.0.1:27017/geeksforgeeks', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
 
// User model
const User = mongoose.model('User', {
    name: { type: String },
    age: { type: Number }
});
 
// Find only one document matching
// the condition(age >= 21)
User.findOne({ age: { $gte: 21 } }, function (err, res) {
    if (err) {
        console.log(err)
    }
    else {
        console.log("Result : ", res);
    }
});

运行应用程序的步骤: 在终端中输入以下代码来运行服务器:

node index.js

输出:

Mongoose Document API

3. 更新文档: 要更新一个 文档 ,你需要使用 updateOne() 方法或 findOneAndUpdate() 方法。它们之间的关键区别是 updateOne() 不返回已更新的文档,而 findOneAndUpdate() 返回已更新的文档。

示例: 在下面的示例中,我们将要更新文档。打开index.js文件并编写以下代码:

const mongoose = require('mongoose');
 
// Database connection
mongoose.connect('mongodb://127.0.0.1:27017/geeksforgeeks', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
 
// User model
const User = mongoose.model('User', {
    name: { type: String },
    age: { type: Number }
});
 
// Update only one document matching
User.updateOne({ name: "Rishu" }, 
{ age: 22 }, function (err, res) {
    if (err) {
        console.log(err)
    }
});
 
// Or you can use findOneAndUpdate()
 
const doc = User.findOneAndUpdate(
    { name: "Rishu" },
    { age: 22 },
     
    // if 'new' isn't true then findOneAndUpdate() 
    // will return the document as it was 
    // before it was updated.
     
    { new: true },
    function (err, res) {
        if (err) {
            console.log(err)
        }
        else {
            console.log("Result : ", res);
        }
    });

运行应用程序的步骤: 在终端中输入以下代码以启动服务器:

node index.js

输出:

Mongoose Document API

如下所示,文档已更新:

Mongoose Document API

4. 覆写文档: 要覆写一个文档,我们可以使用 replaceOne() 方法。这个 ‘replaceOne()’ 方法接收2个必填参数、一些可选参数和一个回调函数。第一个参数是你想要覆写的文档,第二个参数是新的文档对象。

示例: 在下面的示例中,我们将要覆写文档。打开index.js文件并写入以下代码:

const mongoose = require('mongoose');
 
// Database connection
mongoose.connect('mongodb://127.0.0.1:27017/geeksforgeeks', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
 
// User model
const User = mongoose.model('User', {
    name: { type: String },
    age: { type: Number }
});
 
// OverWrite a document using `replaceOne()` method
 
User.replaceOne(
    { name: "Rishu" }, 
    { name: "Raja", age: 19 }, (err) => {
    if (err) return console.error(err);
    else {
        console.log('{ name: "Rishu" } is replaced 
            with {name: "Raja", age: 19}')
    }
});

运行应用的步骤:

在终端中输入以下代码启动服务器:

node index.js

输出:

Mongoose Document API

如下所示,文档已被覆盖:

Mongoose Document API

到目前为止,我们已经介绍了最重要的 mongoose文档API 。还有其他可访问的API,我将在未来的文章中讨论。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程