Mongoose 构建数据库的模型

Mongoose 构建数据库的模型

Mongoose是最流行的ODM映射库,用于MongoDB数据库。在本文中,我们将看到如何使用它来构建我们数据库的模型,当使用纯MongoDB来构建一个大型复杂的应用程序时,这可能会有点繁琐。我们将使用Node.js来演示使用mongoose的用法。

我们需要以下软件来了解mongoose如何使用模式在数据库中创建模型。我们需要一个代码编辑器,如VS Code,Node.js和一个数据库查看器,例如Robo 3T,现在被命名为Studio 3T。

步骤1: 在VS Code中打开一个新文件夹,创建一个新文件, app.js 。现在打开终端并输入以下命令。这个命令将初始化一个node项目,创建一个 package.json 文件,它包含关于我们项目的信息和其中使用的依赖项。它还有我们定义的脚本命令。

npm init -y

现在我们已经初始化了一个节点项目,我们需要在其中添加一个脚本命令。打开 package.json 文件,在 scripts 键下,输入一个新的键, start ,并将其值设置为 “node app.js”

Mongoose 构建数据库的模型

步骤2: 使用Nodejs构建的Web应用程序托管时,托管服务或其他查看您代码的人将使用以下命令运行它,否则他们将不得不寻找您主文件的名称,然后为其编写特定的命令。其中 start 命令概括了启动Nodejs应用程序的概念。

npm start

注意: 由于我们还没有在JavaScript文件中编写任何代码,上述命令现在不会执行任何操作。

步骤3: 导入库并连接到数据库。我们不能仅仅开始编写代码,让我们可以使用Mongoose库来设置和使用MongoDB数据库。我们需要从NPM仓库安装所需的库,该仓库是用于Nodejs应用程序的第三方软件包的云存储库。将以下命令写入终端以安装mongodb和mongoose库。

npm install mongodb mongoose

现在将下面的代码写入 app.js 文件以导入mongoose库并使用其 connect 方法连接到MongoDB数据库。如果不存在这样的数据库,它将被创建。下面代码中显示的URL是用于本地数据库,最后是我们数据库的名称。您还可以添加一个URL链接到云MongoDB数据库。我们不导入和使用 mongodb 库,因为它仅用于 mongoose 库在后台使用。请记住,mongoose仅适用于MongoDB数据库。

文件:app.js

const mongoose = require('mongoose'); 
mongoose.connect("mongodb://localhost:27017/magesDB");

步骤4: 为我们的模型决定蓝图。我们正在创建一个用于存储遍布世界各地的法师数据的数据库。法师将有一个名字,一个能力类型,金币,生命和法力值。因此,这些是我们将为每个法师拥有的字段。在MongoDB中,集合类似于表格,文档类似于包含表示单个实体的所有数据的表格的一行。我们使用mongoose常量来使用mongoose库提供的所有方法。我们调用Schema方法并传递一个JavaScript对象,其中包含上述字段。它们的值是将包含的数据类型。由于这只是一个蓝图,我们不打算提供任何实际数据。我们还可以向键传递一个对象,该对象将定义字段的其他属性。在这里,我们唯一需要的附加属性是名称和能力类型键不能为空。因此,我们将require键设置为true。如下所示,所有这些都需要分配给一个常量。

为了实现这个蓝图,即架构,我们使用mongoose.model方法。我们传递两个参数,第一个是集合的名称,第二个是架构。请保持字符串的大小写完全一致。Mongoose将自动将其转换为小写和单数形式。将其分配给一个常量。现在,这个常量是一个类,我们可以从中创建多个对象。

文件:app.js

const mongoose = require('mongoose'); 
mongoose.connect("mongodb://localhost:27017/magesDB"); 
  
const mageSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        require: true
    }, 
    power_type: { 
        type: String, 
        require: true
    }, 
    mana_power: Number, 
    health: Number, 
    gold: Number 
}) 
  
const Mage = new mongoose.model("Mage", mageSchema)

步骤5: 创建并保存模型。现在我们有了一个可以创建对象的类,这个类将作为表示类所代表的集合的文档,我们使用new关键字和save()方法创建并保存它。像在传统的面向对象编程方法中一样,使用new关键字创建一个Mage类的对象,这将调用构造函数方法。然后在这个对象上调用save()方法。这将在mages集合中创建一个文档。现在使用以下命令运行代码。

npm start

文件: app.js

const mongoose = require('mongoose'); 
mongoose.connect("mongodb://localhost:27017/magesDB"); 
  
const mageSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        require: true
    }, 
    power_type: { 
        type: String, 
        require: true
    }, 
    mana_power: Number, 
    health: Number, 
    gold: Number 
}) 
  
const Mage = new mongoose.model("Mage", mageSchema) 
  
const mage_1 = new Mage({ 
    name: "Takashi", 
    power_type: 'Element', 
    mana_power: 200, 
    health: 1000, 
    gold: 10000 
}); 
  
mage_1.save();

您可以通过打开Studio 3T桌面应用程序,点击连接,然后按照以下层次结构进行操作,并双击模型集合名称来查看保存的模型和文档。

Mongoose 构建数据库的模型

您可以根据需要从 Mage 类创建多个对象,并在这些对象上调用 save() 方法,以在 mages 集合中为每个对象创建一个文档。

文件:app.js

const mongoose = require('mongoose'); 
mongoose.connect("mongodb://localhost:27017/magesDB"); 
  
const mageSchema = new mongoose.Schema({ 
    name: { 
        type: String, 
        require: true
    }, 
    power_type: { 
        type: String, 
        require: true
    }, 
    mana_power: Number, 
    health: Number, 
    gold: Number 
}) 
  
const Mage = new mongoose.model("Mage", mageSchema) 
  
const mage_1 = new Mage({ 
    name: "Takashi", 
    power_type: 'Element', 
    mana_power: 200, 
    health: 1000, 
    gold: 10000 
}); 
  
mage_1.save(); 
  
const mage_2 = new Mage({ 
    name: "Steve", 
    power_type: 'Physical', 
    mana_power: "500", 
    health: "5000", 
    gold: "50"
}) 
  
mage_2.save();

输出:

Mongoose 构建数据库的模型

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程