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