我得到了一个包含 $lookup
的聚合查询:
pipeline = [{
'$match': {
'_id': ObjectId(layout_id)
}
}, {
'$lookup': {
'from': 'units',
'localField': 'unit_id',
'foreignField': '_id',
'as': 'layout_unit'
}
}, {
'$replaceRoot': {
'newRoot': {
'$mergeObjects': [{
'$arrayElemAt': ["$layout_unit", 0]
}]
}
}
}, {
'$project': {
'layout_unit': 0
}
}, {
'$lookup': {
'from': 'users',
'localField': 'user_id',
'foreignField': '_id',
'as': 'unit_user'
}
}, {
'$unwind': '$unit_user'
}]
我想使用 mongomock
对其进行单元测试。这里的问题是,从版本 3.9.0 开始,它不支持 $lookup
聚合。
NotImplementedError:虽然 '$lookup' 是聚合管道的有效运算符,但目前未在 Mongomock 中实现。
有解决办法吗?或者 mongomock
的替代解决方案?
最佳答案
可能晚了几个月,但由于我计算机中的旧版本,我发现现在 lib 发布了该运算符的实现。
关于python - 使用 Mongomock 测试 $lookup 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628968/