目前我在数据库中有如下报告集合(为了清晰起见而简化);
{
"_id": "33b4c208-4807-4004-ae55-d482266ee790",
"reportTypeId": "RPT-100",
"created": "2021-02-23T23:54:28.376+00:00",
"userId": "cc278c75-9399-451e-a40d-64eb0d14625a",
"rows": [
{
"row_field_1": "x",
"row_field_2": "y",
"row_field_3": "z"
}
]
}
但我们决定将报告与行分开,所以我创建了 reportRows 集合。
我编写聚合将报表对象内部的每一行传输到新创建的 reportRows 集合。 但是您已经注意到我在报告行项目中没有任何 _id 字段,因此在插入之前,我想创建一个带有 UUID 字符串值的 _id 字段。
我找到了 UUID 的文档。
https://docs.mongodb.com/manual/reference/method/UUID/
文档说我可以使用 UUID() 函数创建随机 UUID,但是当我使用 $set 或 $addFields 阶段在聚合管道中添加 _id 字段时,MongoDB 给出以下错误。
“MongoshInvalidInputError:缺少必需的参数。”
MongoDB Compass 工具针对同一管道给出以下警告。 “舞台文件格式必须正确”
// $set stage 为行添加(或设置)_id 字段
{
"$set": {
"_id": UUID()
}
}
如何在聚合管道中使用随机 UUID 字符串创建或设置 _id 字段?
谢谢。