Nodejs教程-Node.js MongoDB 过滤查询
find()
方法也可以用于在特定参数上过滤结果。你可以使用查询对象来过滤结果。
示例
过滤记录以检索地址为 "Delhi" 的特定员工。
创建一个名为 "query1.js" 的 js 文件,包含以下代码:
var http = require('http');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/MongoDatabase";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var query = { address: "Delhi" };
db.collection("employees").find(query).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
解释:
- 导入所需的模块:
http
用于创建 HTTP 服务器,MongoClient
用于连接 MongoDB。 - 定义 MongoDB 连接 URL。
- 连接到 MongoDB 服务器。
- 定义一个查询对象
query
,用于指定过滤条件,这里为地址为 "Delhi"。 - 访问 "employees" 集合,并使用带有查询对象
query
的find()
方法检索符合条件的所有记录。 - 使用
toArray()
方法将结果转换为数组。 - 如果操作过程中出现错误,抛出错误。
- 打印检索到的记录数组。
- 关闭数据库连接。
Node.js MongoDB 使用正则表达式进行过滤
你还可以使用正则表达式来查找你想要搜索的内容。正则表达式只能用于查询字符串。
示例
从集合中检索地址以字母 "L" 开头的记录。
创建一个名为 "query2.js" 的 js 文件,包含以下代码:
var http = require('http');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/MongoDatabase";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var query = { address: /^L/ };
db.collection("employees").find(query).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
解释:
- 导入所需的模块:
http
用于创建 HTTP 服务器,MongoClient
用于连接 MongoDB。 - 定义 MongoDB 连接 URL。
- 连接到 MongoDB 服务器。
- 定义一个查询对象
query
,使用正则表达式/^L/
来指定地址以字母 "L" 开头。 - 访问 "employees" 集合,并使用带有查询对象
query
的find()
方法检索符合条件的所有记录。 - 使用
toArray()
方法将结果转换为数组。 - 如果操作过程中出现错误,抛出错误。
- 打印检索到的记录数组。
- 关闭数据库连接。
这两个示例都使用了相似的结构,连接到 MongoDB 服务器,访问集合并在其上执行过滤操作。请确保将 "mongodb://localhost:27017/MongoDatabase"
替换为你实际的 MongoDB 连接 URL 和集合名称。
确保在你的 Node.js 项目中安装了所需的 MongoDB 驱动程序。你可以使用以下命令进行安装:
npm install mongodb