概述
在现代网站和应用程序的构建中,使用数据库是非常有用的。MongoDB 是一个广泛使用的非关系型数据库,而 Mongoose 是一个开源的 JavaScript 库,可以方便地连接、访问和管理 MongoDB 数据库。在本文中,我们会学习如何将 Mongoose 集成到 Hapi.js 应用程序中来连接和查询 MongoDB 数据库。
连接 MongoDB 数据库
在使用 Mongoose 之前,我们需要先安装和引入 Mongoose 包。可以在终端运行以下命令进行安装:
npm install mongoose
然后在代码中引入 Mongoose:
const mongoose = require('mongoose');
连接 MongoDB
现在,我们需要连接到 MongoDB 服务器。可以使用以下命令连接到默认的 MongoDB 服务器:
mongoose.connect('mongodb://localhost/mydb', { useNewUrlParser: true }) .then(() => console.log('MongoDB connected...')) .catch(err => console.log(err));
其中 mongodb://localhost/mydb
是 MongoDB 的连接字符串。如果出现错误,将会在控制台中打印出错误信息。
连接 MongoDB 并指定选项
可以通过向 mongoose.connect()
函数传递一个对象来传递选项。例如,可以使用以下代码对选项进行设置:
mongoose.connect('mongodb://localhost/mydb', { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false }) .then(() => console.log('MongoDB connected...')) .catch(err => console.log(err));
其中 useNewUrlParser
选项将使用新的 URL 解析程序,useUnifiedTopology
选项将使用新的 MongoDB 驱动程序拓扑引擎,而 useFindAndModify
选项则禁用了 findOneAndUpdate()
和 findOneAndDelete()
函数的旧用法。
查询 MongoDB 数据库
接下来,我们将学习如何从 MongoDB 数据库中查询数据。
定义数据模型
在查询 MongoDB 数据库之前,我们需要定义一个数据模型。Mongoose 使用 Schema 和 Model 来管理 MongoDB 中的数据。
以下代码演示如何使用 Mongoose 定义一个简单的数据模型:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------------ - --- ----------------- ----- ------- ---- ------ --- ----- ------ - ------------------------ -------------- -------------- - -------
在这里,我们定义了一个名为 Person
的数据模型,其中包含两个属性:name
和 age
。
查询数据
现在我们有了数据模型,我们可以使用以下代码来查询数据:
const Person = require('./models/person'); Person.find() .then(persons => console.log(persons)) .catch(err => console.log(err));
在这里,我们使用 Person
数据模型的 find()
函数来查找所有的 Person
对象。查询结果将会是一个数组,其中包含所有的 Person
实例。
添加条件
我们还可以使用条件来查询对象。例如,可以使用以下代码查询年龄大于 18 岁的人:
const Person = require('./models/person'); Person.find({ age: { $gt: 18 } }) .then(persons => console.log(persons)) .catch(err => console.log(err));
在这里,我们使用 find()
函数,并将一个对象作为参数传递给它。对象包含一个 age
属性,它需要大于 18 岁。
添加查询限制
在查询中,我们还可以限制返回的数据量。例如,以下代码只返回前 10 条记录:
const Person = require('./models/person'); Person.find().limit(10) .then(persons => console.log(persons)) .catch(err => console.log(err));
添加排序
我们还可以按照特定属性对查询结果进行排序。例如,以下代码将根据年龄对查询结果进行排序:
const Person = require('./models/person'); Person.find().sort({ age: 1 }) .then(persons => console.log(persons)) .catch(err => console.log(err));
在这里,我们使用 sort()
函数,向其传递包含一个 age
属性的对象,并将其设置为升序排序。
结论
在本文中,我们学习了如何将 Mongoose 集成到 Hapi.js 应用程序中来连接和查询 MongoDB 数据库。通过定义数据模型并使用条件、限制和排序来查询数据,可以让我们获得更大的灵活性和控制性。我们希望这篇文章能够帮助你更好地理解如何在 Hapi.js 应用程序中使用 Mongoose,并能够为你的开发工作提供指导和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670cbd7f5f551281025b87c1