Вычислить стоимость остатка без лишнего поля в документе

Ответы получены от MySQL через X Protocol. Учебные коллекции после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Стоимость четырёх ламп4800
В исходном документе появился inventoryнет
Обычная строка сохранена буквальноprice * stock
После new Expression: поступило 2 лампы6
После expression: поступило ещё 3 лампы9
Документы и дополнительные наблюдения
{
    "minimal_projection": {
        "sku": "LAMP",
        "inventory": 4800
    },
    "before_write": {
        "_id": "LAMP",
        "sku": "LAMP",
        "price": 1200,
        "stock": 4
    },
    "literal_readback": {
        "_id": "LAMP",
        "sku": "LAMP",
        "note": "price * stock",
        "price": 1200,
        "stock": 4
    },
    "after_constructor": {
        "_id": "LAMP",
        "sku": "LAMP",
        "note": "price * stock",
        "price": 1200,
        "stock": 6
    },
    "after_function_expression": {
        "_id": "LAMP",
        "sku": "LAMP",
        "note": "price * stock",
        "price": 1200,
        "stock": 9
    },
    "expression_name_property": null,
    "numeric_types": {
        "inventory": "float",
        "after_constructor_stock": "float",
        "after_function_stock": "float"
    }
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.