在mongodb中更新列数据类型

时间:2018-06-09 18:32:08

标签: mongodb mongodb-query

我正在尝试更新mongodb数据集中列的数据类型,但即使成功运行命令后,预期的更改也不会反映在罗盘中。

查询:

db.EquityPrice.find().forEach(function(data) {
    db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})

任何人都可以帮忙找出我出错的地方吗?

1 个答案:

答案 0 :(得分:0)

db.EquityPrice.find().forEach(function(data) {
    db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})

在您的代码中,您将查找集合EquityPriceforEach元素中的所有条目,并应用包含文档(data)的函数。

为每个文档调用的更新函数需要查询参数作为第一个参数。在您的情况下,您传递了{_id: doc._id} - 但未定义对象doc,因此undefined。查询找不到_id undefined的元素。

您想要更新传递的data对象 - 因此请将代码更改为:

db.EquityPrice.update({_id : data['_id']}, {$set : {Trade_Date : new Date(data['Trade_Date']) }});