Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Thay thế giá trị bằng string literal trong aggregation MongoDB

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: $literal hữ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.