Node.js MongoDB 查询


过滤结果

在集合中查找文档时,您可以使用查询对象过滤结果。

第一个论点find()method是一个查询对象,用于限制搜索。

示例

查找地址为 "Park Lane 38" 的文档:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var query = { address: "Park Lane 38" };
  dbo.collection("customers").find( query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_mongodb_query.js" 的文件中并运行该文件:

运行"demo_mongodb_query.js"

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

这会给你这个结果:

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


使用正则表达式过滤

您可以编写正则表达式来准确查找您要搜索的内容。

正则表达式只能用于查询字符串

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

示例

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

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  var query = { address: /^S/ };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});
运行示例 »

将上面的代码保存在名为 "demo_mongodb_query_s.js" 的文件中并运行该文件:

运行"demo_mongodb_query_s.js"

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

这会给你这个结果:

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