mongodb将数组元素从int转换为string

时间:2015-03-03 17:25:29

标签: mongodb mongodb-query

我有一个混合类型的mongodb记录,需要清理数据以便在后端应用程序中有所帮助。

要更改普通字段的类型(NumberLong到String)很简单,只需将其转换为Javascript中的字符串,如:

db.foo.find( { 'field' : { $type : 18 } } ).forEach( function (x) {
    x.field = new String(x.field); // convert field to string
    db.foo.save(x);
});

但是如何将数组元素从NumberLong更改为String?

例如我有字段:

"elements" : { "top" : {"random" : [ NumberLong(12) , NumberLong(20), NumberLong(13)] } }

我需要elements.top.random的所有元素作为字符串。

我是否需要做数组的“foreach”元素或者有更好的方法吗?

任何Javascript专家都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

在发帖之前我找不到答案,现在我找到了类似的东西并采纳了......

所以这就是:

db.foo.find( {"elements.top.random": {$type:18}} ).forEach( function (x) {
    var arr = [];
    x.elements.top.random.forEach( function (e) { arr.push("" + e); } );
    x.elements.top.random = arr;
    db.foo.save(x);
});