[英]Mongodb field name as numbers - how to use it in updates?
由于我的代码中有一个怪异的错误,我有一个集合,其中的字段名是严格的数字(例如:34344,54675,34356)。 现在,我尝试将这些字段值移到另一个字段(例如:名称,电子邮件等),但是当我运行update命令时:
db.collection.find({"id_field" : 1996}).forEach(function (elem) {db.collection.update({_id: elem._id},{$set: {name: elem.36536}});});
我得到的只是一个错误:
SyntaxError: Unexpected number
我应该如何处理? 我已经尝试使用elem [36536]而不是elem.36536,但是没有成功。
如果您的文件是这样的
{
"_id" : 1,
"elem" : {
"123" : "barno",
"456" : "foo@gmail.com"
}
}
您可以$重命名密钥文档。
db.d.update({"_id" : 1},{$rename:{'elem.123':'elem.name','elem.456':'elem.email'}})
结果:
{
"_id" : 1,
"elem" : {
"name" : "barno",
"email" : "foo@gmail.com"
}
}
如果我正确解决了您的问题,那么这段代码可能会帮助您:
db.collection.find({"id_field" : 1996}).forEach(function (elem)
{
var value = elem['36536'];
db.collection.update({_id: elem._id},{$set: {name: value}});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.