これを行うのに苦労しました。参照がありません。
しかし、これは私が自分の側でした方法です。
1、同じ中に別のコレクションを作成しました
db: mydb
collections: books, oldbooks
2、私は一度に1つのデータベースに接続する方法しか知らないので、これに固執します:
mongoose.connect(process.env.CONN_STR);
3、既存のコレクション(この場合は本)には、次のコードがあります:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var BookSchema = new Schema({
name: String
})
module.exports = mongoose.model('Book', BookSchema);
4、コレクションの名前を指定できるように、バックアップ用に別のスキーマを作成しました:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var BackupSchema = new Schema({
name: String
}, {
collection: 'oldbooks'
})
module.exports = mongoose.model('BackupBook', BackupBookSchema);
注意:BackupBookスキーマでコレクションを指定したこと collection: 'oldbooks'
。アイデアは、既存のスキーマをバックアップスキーマに複製することです。
5、コレクション内の各エントリを取得して保存します:
Book.find()
.exec((err, books) => {
if(err) throw err
else {
books.forEach( (book) => {
var backup = new BackupBook();
backup._id = book._id;
backup.name = book.name;
backup.save((err, backup) => {
})
})
}
})
TLDR:バックアップとして別のコレクションを作成します。コレクションの各エントリをクエリしてから、バックアップスキーマに個別に保存します。バックアップスキーマでは、コレクションの名前を指定する必要があることに注意してください。