Tive muita dificuldade em fazer isso não tenho nenhuma referência.
No entanto, foi assim que eu fiz no meu final.
1, criei outra coleção dentro do mesmo
db: mydb
collections: books, oldbooks
2, como eu só sei me conectar a um banco de dados por vez, mantenho isso:
mongoose.connect(process.env.CONN_STR);
3, Em sua coleção existente, neste caso, livros, temos este código:
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, criei um Schema diferente para o backup para poder especificar o nome da coleção:
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);
AVISO:especificamos a coleção em BackupBook Schema
collection: 'oldbooks'
. A ideia é replicar o esquema existente para o esquema de backup. 5, Busque e salve cada entrada na coleção:
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:Crie uma coleção diferente como backup. Consulte cada entrada da coleção e salve no esquema de backup individualmente. Observe que o esquema de backup deve especificar o nome da coleção.