Тестирование агрегатов $lookup с 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: Although '$lookup' is a valid operator for the aggregation pipeline, it is currently not implemented in Mongomock.

Есть ли обходной путь к этому? Или, возможно, альтернативное решение mongomock?

1 ответ

Может быть, на несколько месяцев позже, но из-за старой версии на моем компьютере я обнаружил, что теперь lib выпустила реализацию для этого оператора.

Потяните запрос

Другие вопросы по тегам