MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách sao chép cơ sở dữ liệu Mongodb với Mongoose

Tôi đã gặp khó khăn khi làm việc này, tôi không có bất kỳ tài liệu tham khảo nào.

Tuy nhiên, đây là cách tôi đã làm cuối cùng của tôi.

1, Tôi đã tạo một bộ sưu tập khác trong cùng một

db: mydb
collections: books, oldbooks

2, Vì tôi chỉ biết cách kết nối với một cơ sở dữ liệu tại một thời điểm, tôi tuân theo điều này:

mongoose.connect(process.env.CONN_STR);

3, Trên bộ sưu tập hiện có của bạn, trong trường hợp này là sách, chúng tôi có mã này:

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, Tôi đã tạo một Lược đồ khác cho bản sao lưu để tôi có thể xác định tên của bộ sưu tập:

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

LƯU Ý:rằng chúng tôi đã chỉ định bộ sưu tập trong Lược đồ sách dự phòng collection: 'oldbooks' . Ý tưởng là sao chép lược đồ hiện có sang lược đồ dự phòng.

5, Tìm nạp và lưu từng mục nhập trong bộ sưu tập:

 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:Tạo một bộ sưu tập khác làm bản sao lưu. Truy vấn từng mục nhập của bộ sưu tập sau đó lưu vào Lược đồ dự phòng riêng lẻ. Lưu ý, lược đồ sao lưu phải chỉ định tên của bộ sưu tập.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để nhận được 5 tài liệu cuối cùng theo thứ tự tuần tự?

  2. Cách thay thế tài liệu hiện có khi nhập tệp vào MongoDB

  3. MongoDB:Có thể thực hiện truy vấn không phân biệt chữ hoa chữ thường không?

  4. Dữ liệu khởi động mùa xuân và MongoDB - Lọc truy vấn mảng tài liệu con

  5. Thứ tự kết quả trong MongoDB với $ in?