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