到目前为止Mongodb更新字符串不起作用

时间:2017-08-09 11:50:03

标签: node.js mongodb date

您好我正在尝试将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

enter image description here

但结果是created_at字段没有更新,仍然是一个字符串。

0 个答案:

没有答案