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

Свързване към MongoDB Atlas от функции на firebase

Има няколко предупреждения при свързване към Atlas от Firebase Function. По-долу е правилният начин да върнете екземпляр на свързан клиент за по-нататъшно използване във вашата 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
}

Обяснение:

  1. съобщава се, че не можете да се свържете с Atlas, ако сте на Spark план. Уверете се, че сте надстроили до Blaze, ако още не сте го направили.

  2. uri низ – Не трябва да използвате съкратения URL формат, когато се свързвате към Atlas от Firebase. По някаква причина само по-старият, дълъг URL формат работи надеждно от firebase.

  3. client променлива – Трябва да дефинирате client променлива извън обхвата на експортиране и след това му присвоете свързания клиентски екземпляр във функцията, само ако вече не е присвоен. Това ще предотврати повторното свързване на клиента при всяко извикване на функция. Функциите на Firebase са без състояние , но не изцяло. те се изключват само след известен период на неактивност. Това означава, че връзката ще продължи известно време. От документи :Ако декларирате променлива в глобален обхват, нейната стойност може да се използва повторно при последващи извиквания, без да се налага да се изчислява отново.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Свързване към MongoDB от azure функция

  2. Вмъкнете MongoDB документ с React.js

  3. Как да заявите динамичен ключ - дизайн на схема на mongodb

  4. MongoDB findAndModify. Наистина ли е атомно? Помощ при написването на затворено решение за актуализация

  5. mongodb - извлича подмножество от масиви