我正在尝试更新 mongodb 数据集中列的数据类型,但即使在成功运行命令后,预期的更改也不会反映在指南针中。
询问:
db.EquityPrice.find().forEach(function(data) {
db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})
谁能帮我弄清楚我哪里出错了?
我正在尝试更新 mongodb 数据集中列的数据类型,但即使在成功运行命令后,预期的更改也不会反映在指南针中。
询问:
db.EquityPrice.find().forEach(function(data) {
db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})
谁能帮我弄清楚我哪里出错了?
db.EquityPrice.find().forEach(function(data) { db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }}); })
在您的代码中,您会发现集合中的所有条目EquityPrice和forEach应用具有文档 ( data) 的函数的元素。
为每个文档调用的更新函数需要一个查询参数作为第一个参数。在您的情况下,您通过{_id: doc._id}了-但该对象doc未定义,因此undefined。查询没有找到带有_idof的元素undefined。
您想更新传递的data对象 - 因此将您的代码更改为:
db.EquityPrice.update({_id : data['_id']}, {$set : {Trade_Date : new Date(data['Trade_Date']) }});