Trong MongoDB shell (mongosh), có thể khai báo biến JavaScript với var hoặc let/const và sử dụng trong truy vấn.
Dữ liệu mẫu
> db.demo107.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b19fd5fd66da214471") }
> db.demo107.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b49fd5fd66da214472") }
> db.demo107.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b89fd5fd66da214473") }
Sử dụng biến
> var firstName = "Bob";
> db.demo107.find({"Name": firstName});
Kết quả
{ "_id" : ObjectId("5e2ee1b49fd5fd66da214472"), "Name" : "Bob" }
Mẹo hay:
- Dùng
lethoặcconstthayvar(ES6+, mongosh hỗ trợ) - Biến có thể là object/array:
const filter = {Name: "Bob", Age: {$gt: 20}} - Kết hợp với hàm:
const getUsers = (name) => db.demo107.find({Name: name}) - Trong script file (.js), biến hoạt động như JavaScript bình thường
Lưu ý: Biến chỉ tồn tại trong session shell hiện tại. Không lưu được trong database. Driver ngôn ngữ khác (Node.js, Python...) dùng biến native của ngôn ngữ đó.