[英]MongoDB replace value during aggregation
假设此文档:
{
_id : Object(“12918”),
username : “username”,
password : “password”,
occupation: {
name : “Football”,
code : 254,
}
},
{
_id : Object(“12919”),
username : “username2”,
password : “password2”,
occupation: {
name : “Basketball”,
code : 255,
}
}
我想要一个返回的查询:
{
_id : Object(“12918”),
occupation : {
name : “*”,
code : 254
}
},
{
_id : Object(“12919”),
occupation : {
name : “*”,
code : 255
}
}
因此,只返回字段_id和职业的查询。 并且在所有记录中,字段职业。名称必须用*替换。
我试过这个查询:
aggregate([
{
"$project" :
{
"_id" : 1,
“occupation" : 1,
“occupation.name" : { $literal:“*” }
}
}
])
返回以下异常:
{“ ok”:0,“ errmsg”:“由于该字段或其子字段之一已经存在表达式,因此无法为该字段添加表达式。”,“代码”:16400}
有没有办法做到这一点?
您可以像这样指定occupation
的嵌套文档投影:
db.test.aggregate([{
"$project": {
"_id": 1,
"occupation": {
code: 1,
name: { $literal: "*" }
}
}
}])
您可以这样做:
db.collectionName.aggregate([{$project:{
_id:1,
occupation:{"name":{$literal:"*"},
"code":"$occupation.code"
}
}
}])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.