Jag hade svårt att göra det här, jag har ingen referens.
Men det var så här jag gjorde på min sida.
1 skapade jag en annan samling inom samma
db: mydb
collections: books, oldbooks
2, Eftersom jag bara vet hur man ansluter till en databas åt gången, håller jag mig till detta:
mongoose.connect(process.env.CONN_STR);
3, På din befintliga samling, i det här fallet böcker, har vi denna kod:
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 skapade jag ett annat schema för säkerhetskopieringen så att jag kan specificera namnet på samlingen:
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);
NOTERA:att vi angav samlingen i BackupBook Schema collection: 'oldbooks'
. Tanken är att replikera det befintliga schemat till backupschemat.
5, Hämta och spara varje post i samlingen:
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:Skapa en annan samling som backup. Fråga varje post i samlingen och spara sedan i backupschemat individuellt. Observera att säkerhetskopieringsschemat måste ange namnet på samlingen.