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

Cấu trúc của một ứng dụng đồng bộ trong Node.js và MongoDb

Nếu bạn đang chạy phiên bản nút 7.6 trở lên, cách tốt hơn sẽ là sử dụng async await hoạt động với các hứa hẹn.

Vì vậy, mã của bạn sẽ giống như

const start = async() => {
  const connect = await connectToMongoDb(url);
  const cas = await connect.createYourCollection();
  const isPageHasUpdates = oneMoreFunction(); // i don't know how you gonna check it
  if(isPageHasUpdates) {
      await step 4;
      await step 5;
      await step 6;
  }
  await step 7
  return something; // if you want
}

start()
.then(res => console.log(res)) // here you can use result of your start function if you return something or skip this then
.catch(err => console.log(err)); // do something with your error

Chắc chắn rằng bất kỳ chức năng nào bạn đang chờ đợi sẽ được quảng cáo như bạn đã làm với chức năng kết nối của mình (nhưng nếu bạn đang sử dụng https://www.npmjs.com/package/mongodb các chức năng đã được quảng bá)

Cập nhật

Cách tốt nhất là sử dụng mongoose , nhưng nếu bạn muốn làm việc với mongodb gốc, bạn có thể viết mongodb của mình như thế này https://pastebin.com/BHHc0uVN (chỉ là một ví dụ)

Bạn có thể mở rộng ví dụ này nếu bạn muốn.

Bạn có thể tạo hàm createCollection

const createCollection = (connection, collectionName) => {
  return connection.createCollection(collectionName); // actually i'm not sure that this function exists in mongodb driver
}

Và cách sử dụng sẽ là:

const mongodbLib = require('./lib/mongodb'); //path to db.js file
mongodbLib.init()
  .then(connection => mongodbLib.createCollection(connection, 'cas'))
  .then(() => doSmthElse())

Hoặc nếu bạn chắc chắn rằng init đã hoàn tất (bạn có thể thực hiện một lần trước khi tập lệnh chính như khởi động máy chủ hoặc bất cứ điều gì bạn đang làm)

const mongodbLib = require('./lib/mongodb'); //path to db.js file
const connection = mongodbLib.getConnection();

Hoặc nếu bạn muốn làm việc đơn giản với bộ sưu tập như trong bước 6, hãy thêm bộ sưu tập cas của bạn (như người dùng trong tệp ví dụ). Nhưng điều này bạn có thể sử dụng khi chức năng init của bạn cũng hoàn thành.

const mongodbLib = require('./lib/mongodb');
const cas = mongodbLib.collections.cas;
cas().insertMany(docs)
  .then()
  .catch()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi Mongodb khi khởi động

  2. Mongoose:làm thế nào để đặt một trường lược đồ làm ID?

  3. Mongoose tổng hợp trả về kết quả trống

  4. Đặt nhiều trường với một truy vấn cập nhật

  5. Sử dụng MongoDB làm Nguồn dữ liệu trong GoLang