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

Kết nối với MongoDB Atlas từ các chức năng của firebase

Có một số lưu ý khi kết nối với Atlas từ Chức năng Firebase. Dưới đây là cách chính xác để trả về một phiên bản ứng dụng khách được kết nối để sử dụng thêm trong chức năng FB của bạn:

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
}

Giải thích:

  1. theo báo cáo, bạn không thể kết nối với Atlas nếu bạn đang sử dụng Spark kế hoạch. Đảm bảo bạn nâng cấp lên Blaze nếu bạn chưa nâng cấp.

  2. uri string - Bạn không nên sử dụng định dạng url rút gọn khi kết nối với Atlas từ Firebase. Vì một số lý do, chỉ định dạng url dài, cũ hơn mới hoạt động đáng tin cậy từ firebase.

  3. client biến - Bạn nên xác định client biến bên ngoài phạm vi xuất, và sau đó gán cá thể máy khách được kết nối cho nó bên trong hàm, chỉ khi nó chưa được gán. Điều này sẽ ngăn việc kết nối lại máy khách trên mọi lệnh gọi hàm. Các chức năng của Firebase là không trạng thái , nhưng không hoàn toàn. chúng chỉ ngừng hoạt động sau một thời gian không hoạt động. Điều này có nghĩa là kết nối sẽ tồn tại trong một thời gian. Từ tài liệu :Nếu bạn khai báo một biến trong phạm vi toàn cục, giá trị của nó có thể được sử dụng lại trong các lệnh gọi tiếp theo mà không cần phải tính toán lại.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nếu Mongo $ lookup là một kết hợp bên ngoài bên trái, thì tại sao nó lại loại trừ các tài liệu không phù hợp?

  2. Sử dụng thưa thớt:true vẫn nhận được MongoError:E11000 lỗi khóa trùng lặp

  3. MongoDB chênh lệch giữa $ orderby và Sort

  4. Chuyển $ HOSTNAME vào vùng chứa Docker lúc xây dựng

  5. mongodb TTL không xóa tài liệu