Saya kesulitan melakukan ini. Saya tidak punya referensi.
Namun, inilah yang saya lakukan pada akhirnya.
1, saya membuat koleksi lain dalam yang sama
db: mydb
collections: books, oldbooks
2, Karena saya hanya tahu cara menghubungkan ke satu database pada satu waktu, saya tetap berpegang pada ini:
mongoose.connect(process.env.CONN_STR);
3, Pada koleksi Anda yang ada, dalam hal ini, buku, kami memiliki kode ini:
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, saya membuat Skema yang berbeda untuk cadangan sehingga saya dapat menentukan nama koleksi:
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);
PEMBERITAHUAN:bahwa kami menetapkan koleksi di Skema BackupBook collection: 'oldbooks'
. Idenya adalah untuk mereplikasi skema yang ada ke skema cadangan.
5, Ambil dan simpan setiap entri dalam koleksi:
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:Buat koleksi berbeda sebagai cadangan. Kueri setiap entri koleksi lalu simpan ke Skema cadangan satu per satu. Catatan, skema pencadangan harus menentukan nama koleksi.