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

Łączenie się z MongoDB Atlas z funkcji Firebase

Łączenie się z Atlasem z Firebase Function wiąże się z kilkoma zastrzeżeniami. Poniżej znajduje się prawidłowy sposób zwracania podłączonej instancji klienta do dalszego wykorzystania w funkcji FB:

import { MongoClient } from 'mongodb'

const uri = 'mongodb://<USER>:<PASSWORD>@foo-shard-00-00-xxx.gcp.mongodb.net:27017,foo-shard-00-01-xxx.gcp.mongodb.net:27017,foo-shard-00-02-xxx.gcp.mongodb.net:27017/test?ssl=true&replicaSet=FOO-shard-0&authSource=admin&retryWrites=true'

let client

export default async () => {

    if (client && client.isConnected()) {
        console.log('DB CLIENT ALREADY CONNECTED')

    } else try {
        client = await MongoClient.connect(uri, { useNewUrlParser: true })
        console.log('DB CLIENT RECONNECTED')
    }

    catch (e) {
    throw e
    }

    return client
}

Wyjaśnienie:

  1. podobno nie możesz połączyć się z Atlasem, jeśli jesteś na Sparkie plan. Upewnij się, że dokonałeś aktualizacji do Blaze, jeśli jeszcze tego nie zrobiłeś.

  2. uri string – nie należy używać skróconego formatu adresu URL podczas łączenia się z Atlasem z Firebase. Z jakiegoś powodu tylko starszy, długi format adresu URL działa niezawodnie z Firebase.

  3. client zmienna – należy zdefiniować client zmienna poza zakresem eksportu, a następnie przypisz do niej połączone wystąpienie klienta wewnątrz funkcji, tylko jeśli nie jest jeszcze przypisane. Zapobiegnie to ponownemu połączeniu klienta przy każdym wywołaniu funkcji. Funkcje Firebase są bezstanowe , ale nie do końca. wyłączają się dopiero po pewnym okresie bezczynności. Oznacza to, że połączenie będzie trwało przez jakiś czas. Z dokumentów :Jeśli zadeklarujesz zmienną w zasięgu globalnym, jej wartość może być ponownie wykorzystana w kolejnych wywołaniach bez konieczności ponownego obliczania.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dodać zestaw replik pomocniczych w tej samej maszynie?

  2. Oplog MongoDB zawiera rekordy z kropkami w nazwach kluczy, o które nie można zapytać, afaict

  3. Zastąp osadzony dokument przy użyciu sterownika Mongo C# 2.0

  4. Potok agregacji i indeksy

  5. Jak zaimportować plik JSON do MongoDB za pomocą Pythona?