使用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"
}
}