使用 mongoose-uuid 库时,我可以为模式设置 UUID 类型,因此当我读取数据时,它采用字符串 (utf-8) 格式,而当我保存数据时,它采用 UUID ObjectID BSON 类型 4 格式。这对于我的架构中的顶级或平面直接值和引用定义非常有效。但是,当我在架构中的引用数组中有 UUID 时,该数组会正确保存到数据库,但是当它呈现时,它是原始类型。根据下面的示例,您可以看到scope_id 以正确的格式显示,但权利却不然。
以下是我正在使用的版本:
猫鼬 uuid - 2.3.0
猫鼬 - 5.5.11
我尝试通过更改 getter 和转换值来修改库(mongoose-uuid),但是,当我这样做时,它在呈现时有效,但在保存到数据库时失败。这很可能是由于该值在保存到数据库之前进行了转换或转换。
这是一个示例架构
{
"code": {
"type": String,
"required": true
},
"scope_id": {
"type": mongoose.Types.UUID,
"ref": "scopes"
},
"entitlements": [{
"type": mongoose.Types.UUID,
"ref": "entitlements"
}]
}
实际响应示例
{
"entitlements": [
"zMihi1BKRomM1Q41p7hgLA==",
"ztOYL7n1RoGA6aoc0TcqoQ=="
],
"code": "APPUSR",
"scope_id": "b8f80c82-8325-4ffd-bfd7-e373a90e7c45",
"id": "32e79061-e531-45ad-b934-56811e2ad713"
}
预期反应
{
"entitlements": [
"ccc8a18b-504a-4689-8cd5-0e35a7b8602c",
"ced3982f-b9f5-4681-80e9-aa1cd1372aa1"
],
"code": "APPUSR",
"scope_id": "b8f80c82-8325-4ffd-bfd7-e373a90e7c45",
"id": "32e79061-e531-45ad-b934-56811e2ad713"
}