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

Структура на синхронно приложение в Node.js и MongoDb

Ако използвате възел версия 7.6 или по-нова, по-добрият начин ще бъде да използвате async await, който работи с обещания.

Така вашият код ще изглежда като

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

Разбира се, всяка функция, която ще чакате, трябва да бъде обещана, както направихте с вашата функция за свързване (но ако използвате https://www.npmjs.com/package/mongodb вече обещани функции)

Актуализация

Най-добрият начин е да използвате mongoose , но ако искате да работите с родния mongodb, можете да напишете своя mongodb така https://pastebin.com/BHHc0uVN (само пример)

Можете да разширите този пример както искате.

Можете да създадете функция createCollection

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

И използването ще бъде:

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

Или ако сте сигурни, че init е готово (можете да го направите веднъж преди основния скрипт, като стартиране на сървър или каквото и да правите)

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

Или ако искате проста работа с колекция като в стъпка 6, добавете вашата колекция cas (като потребител в примерния файл). Но това можете да използвате и когато вашата функция за стартиране е готова. Така че използването ще бъде

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. Незадължителни полета на схемата Mongoose

  2. MongoDB - пейджинг

  3. MongoDB:Заявка за вложени масиви

  4. mongodb текстово търсене с множество полета

  5. MongoDB:Премахване на поле от ВСИЧКИ поддокументи в поле на масив