您好我正在尝试将MongoDB
所有JSON
文件从string
格式(“Fri May 20 09:54:13 +0000 2016”)更新为ISODate
1}}格式(YYYY-MM-DD HH:MM:SS)。为了实现这一点,我使用子字符串和自制函数。这很好用,我看到控制台将它翻译成应有的。
但是当我更新记录时,我发现更新无效。我该怎么做才能使它发挥作用。
非常感谢。
示例json文档
{
"_id" : ObjectId("573edec6ac5e621961f963f2"),
"contributors" : null,
"truncated" : false,
"text" : "Namens de verenigde marathonschaatsteams: gefeliciteerd @KNSB, @KPN en @Versteegen met het blijvend verbinden van schaatsend Nederland!",
"is_quote_status" : false,
"in_reply_to_status_id" : null,
"id" : NumberLong("733596684547018752"),
"favorite_count" : NumberInt("0"),
"source" : "<a href=\"https://about.twitter.com/products/tweetdeck\" rel=\"nofollow\">TweetDeck</a>",
"timestamp_ms" : "1463738053820",
"in_reply_to_screen_name" : null,
"id_str" : "733596684547018752",
"retweet_count" : NumberInt("0"),
"in_reply_to_user_id" : null,
"favorited" : false,
"geo" : null,
"in_reply_to_user_id_str" : null,
"lang" : "nl",
"created_at" : "Fri May 20 09:54:13 +0000 2016",
"filter_level" : "low",
"in_reply_to_status_id_str" : null,
"place" : null
}
根据对此解决方案的评论建议尝试使用脚本:
Multiply field by value in Mongodb
更新Mongobooster中的脚本
db.eval(function() {
db.STG_LEADS_AUTOSCHADE.find().forEach(function(e) {
e.created_at = new Date(e.created_at);
db.collection.save(e);
});
});
结果
WARNING: db.eval is deprecated
但结果是created_at字段没有更新,仍然是一个字符串。