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

MongoDB trong bộ nhớ để kiểm tra?

Bạn có thể thực hiện điều này bằng cách sử dụng mongodb-memory-server . Gói tải xuống một tệp nhị phân mongod vào thư mục chính của bạn và khởi tạo phiên bản MondoDB mới được hỗ trợ bộ nhớ nếu cần. Đối với mỗi tệp thử nghiệm, bạn có thể tạo ra một máy chủ mới, có nghĩa là bạn có thể chạy tất cả chúng song song.

Đối với những người đọc sử dụng jest trình điều khiển mongodb gốc , bạn có thể thấy lớp học này hữu ích:

const { MongoClient } = require('mongodb');
const { MongoMemoryServer } = require('mongodb-memory-server');

// Extend the default timeout so MongoDB binaries can download
jest.setTimeout(60000);

// List your collection names here
const COLLECTIONS = [];

class DBManager {
  constructor() {
    this.db = null;
    this.server = new MongoMemoryServer();
    this.connection = null;
  }

  async start() {
    const url = await this.server.getUri();
    this.connection = await MongoClient.connect(url, { useNewUrlParser: true });
    this.db = this.connection.db(await this.server.getDbName());
  }

  stop() {
    this.connection.close();
    return this.server.stop();
  }

  cleanup() {
    return Promise.all(COLLECTIONS.map(c => this.db.collection(c).remove({})));
  }
}

module.exports = DBManager;

Sau đó, trong mỗi tệp thử nghiệm, bạn có thể thực hiện như sau:

const dbman = new DBManager();

afterAll(() => dbman.stop());
beforeAll(() => dbman.start());
afterEach(() => dbman.cleanup());

Tôi nghi ngờ cách tiếp cận này có thể tương tự đối với các khuôn khổ thử nghiệm khác.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js hiển thị hình ảnh từ GridFS của Mongo

  2. Cách sử dụng toán tử $ in trong mongodb với hai trường trong java

  3. Thực thi các tập lệnh mongodb qua mongoid Rails

  4. Mongo:Làm thế nào để nhóm theo $ tuần nhưng thay vào đó trả lại ngày bắt đầu và ngày kết thúc của mỗi tuần?

  5. Những điều quan trọng cần theo dõi trong MongoDB