Měl jsem problém to udělat, nemám žádné reference.
Nicméně takhle jsem to udělal já.
1, vytvořil jsem další kolekci v rámci stejného
db: mydb
collections: books, oldbooks
2, Protože se umím připojit pouze k jedné databázi najednou, držím se tohoto:
mongoose.connect(process.env.CONN_STR);
3, Na vaší stávající sbírce, v tomto případě knih, máme tento kód:
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, vytvořil jsem pro zálohu jiné schéma, abych mohl určit název kolekce:
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);
UPOZORNĚNÍ:že jsme specifikovali kolekci v BackupBook Schema collection: 'oldbooks'
. Cílem je replikovat existující schéma na schéma zálohování.
5, Vyzvedněte a uložte každý záznam ve sbírce:
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:Vytvořte jinou kolekci jako zálohu. Dotazujte se na každou položku kolekce a poté ji uložte do schématu zálohy jednotlivě. Všimněte si, že schéma zálohování musí specifikovat název kolekce.