在MongoDB中,我有一个名为“date”的字段的文档,该字段在数组中。在MongoDB中将字符串日期更改为ISO日期?
{
"_id" : ObjectId("587627a2125a730f78a20859"),
"data" : [
{
"Number" : "359983007479839",
"date" : "2016-02-10T21:56:33.000Z"
}
]
后,我运行此脚本:
db.dummy.find().forEach(function(doc){
doc.mongodbdate = ISODate(doc.mongodbdate);
db.dummy.save(doc);
})
而且它给我下面的输出;
{
"_id" : ObjectId("588724ba2746360c04a51e4b"),
"data" : [
{
"Number" : "359983007479839",
"mongodbdate" : "2016-02-12T18:01:06.000Z"
}
],
"mongodbdate" : ISODate("2017-01-24T15:26:24.537+05:30")
}
我想这也:
var bulk = db.dummy.initializeUnorderedBulkOp(),
count = 0;
db.dummy.find().forEach(function(doc) {
bulk.find({ "_id": doc._id }).updateOne({
"$set": { "mongodbdate": ISODate(doc.mongodbdate) }
})
count++;
if (count % 1000 == 0) {
// Execute per 1000 operations and re-init
bulk.execute();
bulk = db.dummy.initializeUnorderedBulkOp();
}
})
its throws Error: "message" : "invalid ISO date"
我想转换该字符串日期为ISO date.I有一些代码更改,但是其增加新的日期与ISO格式,但我想更新哪些已经可用,不需要插入新的。 我也在stackoverflow上得到了一个解决方案,但那是在我的文档中添加新字段,我认为这是因为数组,我想更新现有的一个。
没有使用pymongo我该怎么办? –
你必须直接在MongoDB中进行更新,对吧?然后你需要一些接口将你的编程语言连接到mongodb。在Python中,这恰好是'pymongo'(有其他人,但相信我,pymongo比其他人更容易学习)。 – x899
我用这个脚本;但这是在文档中创建新的字段也超出了数组...它不更新... db.dummy.find()。forEach(function(doc){ doc.mongodbdate = new Date(data.mongodbdate) ; db.dummy.save(doc); }) –