Truy vấn Node.js MongoDB
Lọc kết quả
Khi tìm tài liệu trong một bộ sưu tập, bạn có thể lọc kết quả bằng cách sử dụng một đối tượng truy vấn.
Đối số đầu tiên của find()
phương thức là một đối tượng truy vấn và được sử dụng để giới hạn tìm kiếm.
Thí dụ
Tìm tài liệu theo địa chỉ "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();
});
});
Lưu đoạn mã trên vào tệp có tên "demo_mongodb_query.js" và chạy tệp:
Chạy "demo_mongodb_query.js"
C:\Users\Your Name>node demo_mongodb_query.js
Điều này sẽ cung cấp cho bạn kết quả này:
[
{ _id: 58fdbf5c0ef8a50b4cdd9a8e
, name: 'Ben', address: 'Park Lane 38' }
]
Lọc với các biểu thức chính quy
Bạn có thể viết biểu thức chính quy để tìm chính xác những gì bạn đang tìm kiếm.
Biểu thức chính quy chỉ có thể được sử dụng để truy vấn chuỗi .
Để chỉ tìm các tài liệu có trường "địa chỉ" bắt đầu bằng chữ "S", hãy sử dụng biểu thức chính quy /^S/
:
Thí dụ
Tìm tài liệu có địa chỉ bắt đầu bằng chữ "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();
});
});
Lưu mã ở trên vào tệp có tên "demo_mongodb_query_s.js" và chạy tệp:
Chạy "demo_mongodb_query_s.js"
C:\Users\Your Name>node demo_mongodb_query_s.js
Điều này sẽ cung cấp cho bạn kết quả này:
[
{ _id:
58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard',
address: 'Sky st 331' },
{ _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway
1633' }
]