繁体   English   中英

Mongodb字段名称为数字-如何在更新中使用它?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM