Es fiel mir schwer, dies zu tun. Ich habe keine Referenz.
Allerdings habe ich es auf meiner Seite so gemacht.
1, ich habe eine andere Sammlung innerhalb derselben erstellt
db: mydb
collections: books, oldbooks
2, Da ich nur weiß, wie man sich mit jeweils einer Datenbank verbindet, bleibe ich dabei:
mongoose.connect(process.env.CONN_STR);
3, Für Ihre bestehende Sammlung, in diesem Fall Bücher, haben wir diesen Code:
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 habe ich ein anderes Schema für das Backup erstellt, damit ich den Namen der Sammlung angeben kann:
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);
HINWEIS:dass wir die Sammlung im BackupBook-Schema collection: 'oldbooks'
angegeben haben . Die Idee ist, das vorhandene Schema in das Backup-Schema zu replizieren.
5, Holen und speichern Sie jeden Eintrag in der Sammlung:
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:Erstellen Sie eine andere Sammlung als Backup. Fragen Sie jeden Eintrag der Sammlung ab und speichern Sie ihn dann einzeln im Backup-Schema. Beachten Sie, dass das Sicherungsschema den Namen der Sammlung angeben muss.