搜尋

首頁  >  問答  >  主體

mongodb 修改欄位類型, 現在集合中有一個欄位是string,要修改為date類型, 怎麼弄 ?

mongodb 修改字段類型, 現在集合中有一個字段是string,要修改為date類型, 怎麼弄 ?

阿神阿神2764 天前1044

全部回覆(3)我來回復

  • 漂亮男人

    漂亮男人2017-05-02 09:21:22

    MongoDB是「無模式」的,對於欄位沒有元資料的概念存在,所以沒有辦法直接修改欄位類型,因為每個文件的欄位都有自己的類型。基於這種情況,只能遍歷所有的文件逐一修改欄位類型。例如原始文檔是:

    {_id: ObjectId(...), date: "Fri May 20 2016 17:04:27 GMT+0800 (CST)"}
    

    那就需要遍歷這個集合逐一修改欄位類型

    db.coll.forEach(function(doc) {
        db.coll.update({_id: doc._id}, {$set: {date: new Date(doc.date)}});
    });

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-02 09:21:22

        db.demo.find({g:{$type:2}}).forEach(function(x){
            
            x.g=new Date();
            db.demo.save(x)
            
            }
    )

    $type: 是型別。 2為string類型。

    回覆
    0
  • 黄舟

    黄舟2017-05-02 09:21:22

    參考這個 https://zhuanlan.zhihu.com/p/... 可以解決 UTCDatetime

    回覆
    0
  • 取消回覆