MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Kiedy serwer mongodb jest wyłączony, jak złapać błąd podczas wykonywania zapytania mongoose

Używasz mangusty, emituje ona zdarzenia (wzorzec EventEmitter), gdy baza danych nie działa i gdy baza danych jest ponownie łączona i ponownie uruchamiana.

z kodu mongoose znalezionego tutaj widzimy, że połączenie db biblioteki - connection.js

ma emitowane następujące zdarzenia:* @param {Mongoose} bazuje na instancji mongoose* @inherits NodeJS EventEmitter

http://nodejs.org/api/events.html#events_class_events_eventemitter * @event connecting :Emitowane, gdy connection.{open,openSet}() jest wykonywany na tym połączeniu.

  • @event connected :Emitowane, gdy to połączenie pomyślnie łączy się z bazą danych. Może być emitowany wielokrotnie razy w reconnected scenariusze.

  • @event open :Emitowane po connected i onOpen jest wykonywany na wszystkich tych modelach połączeń.

  • @event disconnecting :Emitowane, gdy connection.close() został wykonany.

  • @event disconnected :Emitowane po odłączeniu od bazy danych.

  • @event close :Emitowane po disconnected i onClose wykonywane na wszystkich tych modelach połączeń.

  • @event reconnected :Emitowane po connected a następnie disconnected , po którym następuje pomyślne kolejne udane połączenie.

  • @event error :Emitowany, gdy wystąpi błąd w tym połączeniu.

  • @event fullsetup :Emitowany w scenariuszu z zestawem replik, gdy połączony jest podstawowy i co najmniej jeden element pomocniczy określony w ciągu połączenia.

  • @event all :Emitowany w scenariuszu z zestawem replik, gdy wszystkie węzły określone w ciągu połączenia są połączone.

Gdy baza danych przestanie działać, otrzymasz dwa zdarzenia:1. odłączony2. błąd (błąd napotkany przez kierowcę)

Gdy baza danych zostanie ponownie uruchomiona, otrzymasz zdarzenie ponownego połączenia.

Więc nie musisz próbować wyłapywać błędu, zamiast tego powinieneś słuchać tych zdarzeń.

Więcej przydatnych informacji na temat awarii połączenia i ponownego łączenia można znaleźć tutaj .

W tym artykule wyjaśniono, jak używać i konfigurować autoReconnect i bufferMaxEntries zgodnie z Twoimi ustawieniami.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $unset jest pusty. Musisz określić pole takie jak:{$unset:{<pole>:...}}

  2. Aktualizacja Mongoose „nie można użyć części (..) do przemierzenia elementu”

  3. mongodb stronicowania w oparciu o zakres

  4. Django + Mongo + Docker pobiera pymongo.errors.ServerSelectionTimeoutError

  5. Jak przekazać ciąg json do dokumentu bson w celu zapisania do MongoDB?