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 文件,它包含关于我们项目的信息和其中使用的依赖项。它还有我们定义的脚本命令。
现在我们已经初始化了一个节点项目,我们需要在其中添加一个脚本命令。打开 package.json 文件,在 scripts 键下,输入一个新的键, start ,并将其值设置为 “node app.js” 。
步骤2: 使用Nodejs构建的Web应用程序托管时,托管服务或其他查看您代码的人将使用以下命令运行它,否则他们将不得不寻找您主文件的名称,然后为其编写特定的命令。其中 start 命令概括了启动Nodejs应用程序的概念。
注意: 由于我们还没有在JavaScript文件中编写任何代码,上述命令现在不会执行任何操作。
步骤3: 导入库并连接到数据库。我们不能仅仅开始编写代码,让我们可以使用Mongoose库来设置和使用MongoDB数据库。我们需要从NPM仓库安装所需的库,该仓库是用于Nodejs应用程序的第三方软件包的云存储库。将以下命令写入终端以安装mongodb和mongoose库。
现在将下面的代码写入 app.js 文件以导入mongoose库并使用其 connect 方法连接到MongoDB数据库。如果不存在这样的数据库,它将被创建。下面代码中显示的URL是用于本地数据库,最后是我们数据库的名称。您还可以添加一个URL链接到云MongoDB数据库。我们不导入和使用 mongodb 库,因为它仅用于 mongoose 库在后台使用。请记住,mongoose仅适用于MongoDB数据库。
文件:app.js
步骤4: 为我们的模型决定蓝图。我们正在创建一个用于存储遍布世界各地的法师数据的数据库。法师将有一个名字,一个能力类型,金币,生命和法力值。因此,这些是我们将为每个法师拥有的字段。在MongoDB中,集合类似于表格,文档类似于包含表示单个实体的所有数据的表格的一行。我们使用mongoose常量来使用mongoose库提供的所有方法。我们调用Schema方法并传递一个JavaScript对象,其中包含上述字段。它们的值是将包含的数据类型。由于这只是一个蓝图,我们不打算提供任何实际数据。我们还可以向键传递一个对象,该对象将定义字段的其他属性。在这里,我们唯一需要的附加属性是名称和能力类型键不能为空。因此,我们将require键设置为true。如下所示,所有这些都需要分配给一个常量。
为了实现这个蓝图,即架构,我们使用mongoose.model方法。我们传递两个参数,第一个是集合的名称,第二个是架构。请保持字符串的大小写完全一致。Mongoose将自动将其转换为小写和单数形式。将其分配给一个常量。现在,这个常量是一个类,我们可以从中创建多个对象。
文件:app.js
步骤5: 创建并保存模型。现在我们有了一个可以创建对象的类,这个类将作为表示类所代表的集合的文档,我们使用new关键字和save()方法创建并保存它。像在传统的面向对象编程方法中一样,使用new关键字创建一个Mage类的对象,这将调用构造函数方法。然后在这个对象上调用save()方法。这将在mages集合中创建一个文档。现在使用以下命令运行代码。
文件: app.js
您可以通过打开Studio 3T桌面应用程序,点击连接,然后按照以下层次结构进行操作,并双击模型集合名称来查看保存的模型和文档。
您可以根据需要从 Mage 类创建多个对象,并在这些对象上调用 save() 方法,以在 mages 集合中为每个对象创建一个文档。
文件:app.js
输出: