我正在尝试更新mongodb数据集中列的数据类型,但即使成功运行命令后,预期的更改也不会反映在罗盘中。
查询:
db.EquityPrice.find().forEach(function(data) {
db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})
任何人都可以帮忙找出我出错的地方吗?
答案 0 :(得分:0)
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
。查询找不到_id
undefined
的元素。
您想要更新传递的data
对象 - 因此请将代码更改为:
db.EquityPrice.update({_id : data['_id']}, {$set : {Trade_Date : new Date(data['Trade_Date']) }});