我正在尝试从 mongo shell 中更改字段的类型。
我正在做这个...
db.meta.update(
{'fields.properties.default': { $type : 1 }},
{'fields.properties.default': { $type : 2 }}
)
但这不起作用!
改变现状的唯一方法$type
数据的更新是对数据具有正确类型的数据进行更新。
在这种情况下,您似乎正在尝试更改$type
从 1(双精度)到 2(字符串) https://web.archive.org/web/20120505000412/http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24type.
因此,只需从数据库加载文档,执行强制转换(new String(x)
),然后再次保存文档。
如果您需要以编程方式完全从 shell 执行此操作,则可以使用find(...).forEach(function(x) {})
syntax.
回应下面的第二条评论。更改字段bad
从集合中的数字到字符串foo
.
db.foo.find( { 'bad' : { $type : 1 } } ).forEach( function (x) {
x.bad = new String(x.bad); // convert field to string
db.foo.save(x);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)