如何更改MongoDB中具有大量对象的数组内的字段的类型?

时间:2019-05-22 13:24:40

标签: mongodb mongo-shell embedded-documents

我想在MongoDB中将字段的类型从字符串更改为UUID,问题是字段存储在数组中(其中包含数千个对象) 我发现了几个类似于我的问题,但是如果集合中的数组中存在字段

,它们都无法回答如何更改类型

集合看起来像:

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。

我尝试了如下所示的ans解决方案:

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);
})

解决方案均无效。

0 个答案:

没有答案