使用MongoDB $literal设置字符串文字。首先让我们创建一个包含文档的集合-
>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") }
以下是在find()
方法的帮助下显示集合中所有文档的查询-
> db.replacevaluedemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5e0390a3f5e889d7a51994fd"), "StudentName" : "Chris", "StudentFavouriteSubject" : { "TeacherName" : "Bob", "SubjectCode" : "MySQL111" } } { "_id" : ObjectId("5e0390b8f5e889d7a51994fe"), "StudentName" : "Mike", "StudentFavouriteSubject" : { "TeacherName" : "David", "SubjectCode" : "3221Java" } }
这是将值替换为字符串文字的查询-
> db.replacevaluedemo.aggregate([{ ... "$project": { ... "_id": 1, ... "StudentFavouriteSubject": { ... SubjectCode: 1, ... TeacherName: { $literal: "UNKNOWN NAME" } ... } ... } ... }]).pretty();
这将产生以下输出-
{ "_id" : ObjectId("5e0390a3f5e889d7a51994fd"), "StudentFavouriteSubject" : { "SubjectCode" : "MySQL111", "TeacherName" : "UNKNOWN NAME" } } { "_id" : ObjectId("5e0390b8f5e889d7a51994fe"), "StudentFavouriteSubject" : { "SubjectCode" : "3221Java", "TeacherName" : "UNKNOWN NAME" } }