Me costó mucho hacer esto no tengo ninguna referencia.
Sin embargo, así es como lo hice por mi parte.
1, creé otra colección dentro de la misma
db: mydb
collections: books, oldbooks
2, dado que solo sé cómo conectarme a una base de datos a la vez, me limito a esto:
mongoose.connect(process.env.CONN_STR);
3, En su colección existente, en este caso, libros, tenemos 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, creé un esquema diferente para la copia de seguridad para poder especificar el nombre de la colección:
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:que especificamos la colección en BackupBook Schema collection: 'oldbooks'
. La idea es replicar el esquema existente en el esquema de respaldo.
5, Obtener y guardar cada entrada en la colección:
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:cree una colección diferente como copia de seguridad. Consulta cada entrada de la colección y luego guárdala en el esquema de copia de seguridad individualmente. Tenga en cuenta que el esquema de copia de seguridad debe especificar el nombre de la colección.