我正在尝试更新mongodb dataset中列的数据类型,但即使在成功运行命令之后,预期的更改也不会反映在compass中。
查询:
db.EquityPrice.find().forEach(function(data) {
db.EquityPrice.update({_id : doc._id}, {$set : {Trade_Date : new Date(doc.Trade_Date) }});
})
有没有人能帮我找出哪里出错了?
发布于 2018-06-10 02:53:01
函数db.EquityPrice.find().forEach(
(Data){ db.EquityPrice.update({_id : doc._id},{$set:{Trade_Date : new Date(doc.Trade_Date) } });})
在您的代码中,您可以找到集合EquityPrice
和forEach
元素中的所有条目,并应用一个包含文档(data
)的函数。
为每个文档调用的update函数需要一个查询参数作为第一个参数。在本例中,您传递了{_id: doc._id}
-但是没有定义对象doc
,因此是undefined
。查询没有找到_id
为undefined
的元素。
您希望更新传递的data
对象,因此请将代码更改为:
db.EquityPrice.update({_id : data['_id']}, {$set : {Trade_Date : new Date(data['Trade_Date']) }});
https://stackoverflow.com/questions/50777377
复制相似问题