Я хочу изменить типы полей со строкового на UUID в MongoDB. Проблема в том, что поля хранятся в массиве (который содержит более тысячи объектов). Я нашел несколько вопросов, похожих на мой, но ни один из нихотвечает, как изменить тип, если поле присутствует в массиве в коллекции
Коллекция выглядит так:
A:1
B:1
C:1
D :
.[{a:1,
b:1,
c:1,
d:1},
{a:1,
b:1,
c:1,
d:1},
{a:1,
b:1,
c:1,
d:1}
]
Вот например, я хочу изменить тип b и d из строкиUUID.
Я попробовал решение от одного из ответов, которое выглядит следующим образом:
db.Collection.find({"D.b" : {$type: 2}}).forEach(function(x){
x.D.b= UUID(x.D.b);
db.Collection.save(x);
})
Я также попробовал:
db.Collection.find({"D.b" : {$type: 2}}).forEach(function(x){
x.D.forEach(function(doc){
doc.b= UUID(doc.b)
})
db.Collection.save(x);
})
Ни одно из решений не работает.