MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да клонирате база данни Mongodb с Mongoose

Трудно ми беше да направя това, нямам справка.

Аз обаче направих така.

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

ЗАБЕЛЕЖКА:че посочихме колекцията в BackupBook Schema 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:Създайте различна колекция като резервно копие. Направете заявка за всеки запис от колекцията, след което го запазете в схемата за архивиране поотделно. Обърнете внимание, че схемата за архивиране трябва да указва името на колекцията.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Какво е по-бързо:`find().limit(1)` или `findOne()` в MongoDB/Mongoose?

  2. Актуализирайте или добавете към подколекция в mongo

  3. Разделете низ в масив от поднизове или знаци в MongoDB

  4. Настройка на MongoDB връзка с Airflow

  5. Как да създадете частичен индекс с променлива дата?