При использовании библиотеки mongoose-uuid я могу настроить типы UUID для своих схем, поэтому, когда я читаю данные, они представлены в строковом формате (utf-8), а когда я сохраняю данные в UUID, ObjectID BSON Тип 4 формат. Это прекрасно работает с верхними уровнями или плоскими прямыми значениями и определениями ref в моей схеме. Однако, когда у меня есть UUID в массиве ссылок в схеме, массив корректно сохраняется в базе данных, однако, когда он представлен, он находится в своем необработанном виде. На основе приведенного ниже примера вы можете увидеть, что scope_id представлен в правильном формате, а права - нет.
Вот версии, которые я использую:
мангуст-ууид - 2.3.0
мангуст - 5.5.11
Я попытался изменить библиотеку (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"
}