【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 要么是唯一索引,要么在组合索引中排在第一位。