-3

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

询问:

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

谁能帮我弄清楚我哪里出错了?

4

1 回答 1

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。查询没有找到带有_idof的元素undefined

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

db.EquityPrice.update({_id : data['_id']}, {$set : {Trade_Date : new Date(data['Trade_Date']) }});
于 2018-06-09T18:53:00.587 回答