【mongoDB】将指定表中历史数据归档到其他备份表

2023-09-05  本文已影响0人  Bogon

将 TestDB.T_TestColl表中 day 字段 小于 ISODate("2022-12-31T16:00:00.000Z") 的复制到 TestDB.T_TestColl_20230905 表。并将原数据删除。

$ cat TestDB-T_TestColl.js

var day = ISODate("2022-12-31T16:00:00.000Z");
var newtable = "T_TestColl_20230905";

var TestDB = db.getSisterDB("TestDB");
var m = TestDB.getCollection("T_TestColl").find({"day": { $lt: day}}).noCursorTimeout();

m.forEach(x => {
    try{
        var c = TestDB.getCollection(newtable).save(x);
        TestDB.getCollection("T_TestColl").remove({_id:x["_id"]})
    } catch (error) {
        print(error)
    }
   
})
m.close();
$  mongo  -h xx.xx.xx.xx --port=27017 --username=username --password='XXX' --authenticationDatabase=admin   TestDB-T_TestColl.js

注意: 选择字段 day 要么是唯一索引,要么在组合索引中排在第一位。

上一篇下一篇

猜你喜欢

热点阅读