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" 集合,并使用带有查询对象 query 的 find() 方法检索符合条件的所有记录。
  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" 集合,并使用带有查询对象 query 的 find() 方法检索符合条件的所有记录。
  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框架