问题描述
使用 MongoDB 4.0 我必须根据现有字段计算一个新字段。 mycollection 中的文档示例:
{
_id: ...,f1: 'a',f2: 'b'
}
请注意 myJoin
在这里只是举例。在实际使用场景中,此函数非常复杂(自定义加密计算和字节操作)。
def myJoin(left,right):
return left+'-myDelimiter-'+right
myPipeline = [
{
'$match': {
'f1': {
'$exists': True
}
}
},{
'$addFields': {
'f3': myJoin('$f1','$f2')
}
}
]
mydb.mycollection.aggregate(myPipeline)
但是在数据库中我看到:
{
_id: ...,f2: 'b',f3: '$f1-myDelimiter-$f2'
}
但我想要:
{
_id: ...,f3: 'a-myDelimiter-b'
}
目前我正在使用管道聚合。但欢迎使用其他策略。