Node.js MongoDB 查询
筛选记录集
在集合中查找文档时,可以使用查询对象筛选记录集。
find()
方法的第一个参数是查询对象,用于限制搜索。
实例
查找地址为 "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' }
]