是的,addfields聚合操作确实可以向集合中添加新字段。以下是一个简单的示例:
假设我们有一个名为'orders”的集合,其中包含以下文档:
{"_id": 1, "item": "apple", "qty": 5, "price": 0.5}
{"_id": 2, "item": "banana", "qty": 10, "price": 0.25}
{"_id": 3, "item": "pear", "qty": 15, "price": 0.4}
现在,我们可以使用以下代码片段来向每个文档添加一个'total”字段,该字段包含'qty”和'price”的乘积:
db.orders.aggregate([
{$addFields: {total: {$multiply: ["$qty", "$price"]}}}
])
聚合管道将返回以下文档:
{"_id": 1, "item": "apple", "qty": 5, "price": 0.5, "total": 2.5}
{"_id": 2, "item": "banana", "qty": 10, "price": 0.25, "total": 2.5}
{"_id": 3, "item": "pear", "qty": 15, "price": 0.4, "total": 6}
我们可以看到,'addfields”操作确实将新的'total”字段添加到了每个文档中。