Sử dụng $literal để đặt giá trị hằng chuỗi trong pipeline aggregation. Tạo collection:
> db.replacevaluedemo.insertOne({"StudentName":"Chris","StudentFavouriteSubject":{"TeacherName":"Bob","SubjectCode":"MySQL111"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0390a3f5e889d7a51994fd") }
> db.replacevaluedemo.insertOne({"StudentName":"Mike","StudentFavouriteSubject":{"TeacherName":"David","SubjectCode":"3221Java"}});
{ "acknowledged" : true, "insertedId" : ObjectId("5e0390b8f5e889d7a51994fe") }
Hiển thị tài liệu:
> db.replacevaluedemo.find().pretty();
Aggregation thay thế TeacherName bằng hằng "UNKNOWN NAME":
> db.replacevaluedemo.aggregate([{ "$project": { "_id": 1, "StudentFavouriteSubject": { "SubjectCode": 1, "TeacherName": { $literal: "UNKNOWN NAME" } } } }]).pretty();Kết quả - TeacherName bị ghi đè bằng hằng:
Ứng dụng:
$literalhữu ích khi cần thêm trường hằng số, giá trị mặc định, hoặc che giấu dữ liệu nhạy cảm trong kết quả aggregation.