MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak sklonować bazę danych Mongodb za pomocą Mongoose?

Trudno mi było to zrobić, nie mam żadnych referencji.

Jednak tak właśnie zrobiłem po mojej stronie.

1, utworzyłem inną kolekcję w ramach tego samego

db: mydb
collections: books, oldbooks

2, Ponieważ wiem, jak połączyć się tylko z jedną bazą danych na raz, trzymam się tego:

mongoose.connect(process.env.CONN_STR);

3, W Twojej istniejącej kolekcji, w tym przypadku książek, mamy ten 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, stworzyłem inny schemat dla kopii zapasowej, aby móc określić nazwę kolekcji:

    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);

UWAGA:określiliśmy kolekcję w BackupBook Schema collection: 'oldbooks' . Pomysł polega na zreplikowaniu istniejącego schematu do schematu zapasowego.

5, Pobierz i zapisz każdy wpis w kolekcji:

 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:Utwórz inną kolekcję jako kopię zapasową. Przeszukuj każdy wpis w kolekcji, a następnie zapisz pojedynczo w schemacie kopii zapasowej. Pamiętaj, że schemat kopii zapasowej musi określać nazwę kolekcji.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyświetl wyniki żądania GET w przeglądarce za pomocą NodeJS

  2. Jak korzystać z bibliotek innych firm w glassfish?

  3. Hak przed zapisem Mongoose uruchamia się, ale nie zapisuje dodatkowego pola (NIE przy użyciu modelu.update)

  4. Jednostki używane dla maxdistance i MongoDB?

  5. Znajdź duplikat wewnątrz tablicy bez $unwind