मुझे ऐसा करने में कठिनाई हुई, मेरे पास कोई संदर्भ नहीं है।
हालांकि, मैंने अपनी ओर से ऐसा ही किया।
1, मैंने उसी के भीतर एक और संग्रह बनाया है
db: mydb
collections: books, oldbooks
2, चूंकि मैं एक समय में केवल एक डेटाबेस से जुड़ना जानता हूं, इसलिए मैं इस पर कायम हूं:
mongoose.connect(process.env.CONN_STR);
3, आपके मौजूदा संग्रह पर, इस मामले में, पुस्तकों में, हमारे पास यह कोड है:
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, मैंने बैकअप के लिए एक अलग स्कीमा बनाया है ताकि मैं संग्रह का नाम निर्दिष्ट कर सकूं:
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);
सूचना:हमने बैकअपबुक स्कीमा में संग्रह निर्दिष्ट किया है collection: 'oldbooks'
. मौजूदा स्कीमा को बैकअप स्कीमा में दोहराने का विचार है।
5, संग्रह में प्रत्येक प्रविष्टि प्राप्त करें और सहेजें:
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:बैकअप के रूप में एक अलग संग्रह बनाएँ। संग्रह की प्रत्येक प्रविष्टि को क्वेरी करें और फिर व्यक्तिगत रूप से बैकअप स्कीमा में सहेजें। ध्यान दें, बैकअप स्कीमा में संग्रह का नाम निर्दिष्ट होना चाहिए।