Node.js MongoDB 查询

过滤结果

在集合中查找文档时,可以使用 query 查询对象筛选结果。

find() 方法的第一个参数是查询对象,用于限制搜索。

实例

查找 address 为 "Park Lane 38" 的文档:

  1. var MongoClient = require('mongodb').MongoClient;
  2. var url = "mongodb://localhost:27017/";
  3. MongoClient.connect(url, function(err, db) {
  4. if (err) throw err;
  5. var dbo = db.db("mydb");
  6. <strong> var query = { address: "Park Lane 38" };
  7. </strong> dbo.collection("customers").find(<strong>query</strong>).toArray(function(err, result) {
  8. if (err) throw err;
  9. console.log(result);
  10. db.close();
  11. });
  12. });

将上述代码保存在名为 "demo_mongodb_query.js" 的文件中,然后运行该文件

运行 "demo_mongodb_query.js"

C:\Users\ Your Name >node demo_mongodb_query.js

结果如下:

  1. [
  2. { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38' }
  3. ]

用正则表达式过滤

您可以编写正则表达式来精确查找您正在搜索的内容。正则表达式只能用于查询字符串。

要仅查找 "address" 字段以字母 "S" 开头的文档,请使用正则表达式 /^S/ :

实例

查找 "address" 地址以字母 "S" 开头的文档:

  1. var MongoClient = require('mongodb').MongoClient;
  2. var url = "mongodb://localhost:27017/";
  3. MongoClient.connect(url, function(err, db) {
  4. if (err) throw err;
  5. var dbo = db.db("mydb");
  6. var query = { address: <strong>/^S/</strong> };
  7. dbo.collection("customers").find(query).toArray(function(err, result) {
  8. if (err) throw err;
  9. console.log(result);
  10. db.close();
  11. });
  12. });

将上述代码保存在名为 "demo_mongodb_query_s.js" 的文件中,然后运行该文件:

运行 "demo_mongodb_query_s.js"

C:\Users\ Your Name >node demo_mongodb_query_s.js

结果如下:

  1. [
  2. { _id: 58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard', address: 'Sky st 331' },
  3. { _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway 1633' }
  4. ]

分类导航