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();
  });
});

解释:

  1. 导入所需的模块:http 用于创建 HTTP 服务器,MongoClient 用于连接 MongoDB。
  2. 定义 MongoDB 连接 URL。
  3. 连接到 MongoDB 服务器。
  4. 定义一个查询对象 query,用于指定过滤条件,这里为地址为 "Delhi"。
  5. 访问 "employees" 集合,并使用带有查询对象 queryfind() 方法检索符合条件的所有记录。
  6. 使用 toArray() 方法将结果转换为数组。
  7. 如果操作过程中出现错误,抛出错误。
  8. 打印检索到的记录数组。
  9. 关闭数据库连接。

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();
  });
});

解释:

  1. 导入所需的模块:http 用于创建 HTTP 服务器,MongoClient 用于连接 MongoDB。
  2. 定义 MongoDB 连接 URL。
  3. 连接到 MongoDB 服务器。
  4. 定义一个查询对象 query,使用正则表达式 /^L/ 来指定地址以字母 "L" 开头。
  5. 访问 "employees" 集合,并使用带有查询对象 queryfind() 方法检索符合条件的所有记录。
  6. 使用 toArray() 方法将结果转换为数组。
  7. 如果操作过程中出现错误,抛出错误。
  8. 打印检索到的记录数组。
  9. 关闭数据库连接。

这两个示例都使用了相似的结构,连接到 MongoDB 服务器,访问集合并在其上执行过滤操作。请确保将 "mongodb://localhost:27017/MongoDatabase" 替换为你实际的 MongoDB 连接 URL 和集合名称。

确保在你的 Node.js 项目中安装了所需的 MongoDB 驱动程序。你可以使用以下命令进行安装:

npm install mongodb

标签: Nodejs, Nodejs安装教程, Nodejs教程, node, nodejs入门, nodejs入门教程, nodejs进阶, nodejs学习教程, nodejs开发, nodejs指南, nodejs学习指南, nodejs环境配置, nodejs框架