python - 使用 Mongomock 测试 $lookup 聚合

标签 python mongodb unit-testing mongomock

我得到了一个包含 $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 发布了该运算符的实现。

Pull request

关于python - 使用 Mongomock 测试 $lookup 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49628968/

相关文章:

python - 在 Pandas 中反转 'one-hot' 编码

python - 你如何在Python中使用IXR_Base64?

python - 绘制按列分组的 Pandas 数据框

mongodb - 我如何使用 meteor 实时搜索一个集合,并且只显示匹配的结果?

c# - Moq 具有匿名类型的函数

c# - 如何模拟 SerialDataReceivedEventArgs

javascript - 使用 sinon js 库模拟测试代码使用的现有函数

python - 无法将完整的 HTML 写入 PDF

mongodb - $split 并返回 mongodb 查询中的第一个数组元素

javascript - 根据对子项中父项的引用查找文档