小编Ava*_*iya的帖子

DeprecationWarning:在 Db 类上监听事件已被弃用,将在下一个主要版本中删除

我正在使用 mongoose 和 mocha 进行 MongoDB 模式设计和 API 开发我收到此警告...这是什么意思,它将如何影响我以及修复方法是什么?

在实际警告文本下方:

(node:9872) DeprecationWarning:监听 Db 类的事件已被弃用,将在下一个主要版本中删除。

mongoose mongodb node.js deprecation-warning

58
推荐指数
3
解决办法
3万
查看次数

每次调用新的 Lambda 时,Mongoose 连接池都会创建与 Mongodb 的连接

我们使用 Mongoose、Nodejs、Serverless 和 AWS Lambda。为了使用相同的连接,而不是每次需要时打开和关闭连接,我创建了一个大小为 10 的连接池(这对于我们现在的用例来说似乎足够了)。

但问题是,当我看到 Lambda 的 Cloudwatch 日志时,发现所使用的连接并不相同。

每次调用新的 Lambda 时,都会创建一个新连接,而对该 Lambda 的后续调用将使用在第一次调用中打开的相同连接。

导致一次打开的连接数增加。在 MongoDB Atlas 上,我可以看到打开的连接数量非常多。

下面是我在没有可用缓存连接的情况下用于创建连接的代码。如果可用,将使用缓存的连接,并且不会创建新连接。

let cached_db;
exports.createConnection = async () => {
  if(cached_db == null){
    return await mongoose.connect(
    connection_uri,         
    { 'useUnifiedTopology': true , 
      'useNewUrlParser':  true, 
      'useFindAndModify': false , 
      'useCreateIndex': true,
      'socketTimeoutMS': 60000,
      'connectTimeoutMS': 60000,
      'poolSize': 10
    }
  ).then(conn => {
      cached_db = conn;
      return conn;
  }).catch((err) => {
      console.error('Something went wrong', err);
      throw err;
    });
  } else {
    console.log("Cached db in use."); …
Run Code Online (Sandbox Code Playgroud)

connection-pooling mongoose mongodb node.js aws-lambda

11
推荐指数
1
解决办法
3208
查看次数

预配置并发对 Lambda 函数的响应时间影响较小

我们使用无服务器架构以及 AWS Lambda 和 API 网关。lambda 的执行时间在几毫秒范围内客户端的最终响应在几秒钟内收到(这远远超过了 lambda 的执行时间,即使考虑到冷启动场景也考虑了 init 持续时间)。

\n

在使用 API 网关日志进行调试时,会出现以秒为单位的集成延迟,这使得端到端响应相当慢。为了消除初始化持续时间或冷启动,我在 CloudWatch 中添加了规则,用于定期调用 lambda 以使它们保持温暖。

\n

初始化持续时间被完全删除,这也有助于减少集成延迟。有些 Lambda 无法安排,因为调用它们需要身份验证,为此我添加了 5 的预配置并发。

\n

该 Lambda 在日志中也有初始化持续时间。Lambda 配置是消除冷启动的另一种选择,但这不会对 API 网关上 Lambda 响应可用的时间产生影响。

\n

我已按照以下链接将预配置并发分配给 Lambda:

\n\n

我添加了配置的 Lambda 的 CloudWatch 日志:

\n

Duration: 1331.38 ms Billed Duration: 1332 ms Memory Size: 256 MB Max Memory Used: 130 MB Init Duration: 1174.18 ms

\n

我在 …

aws-lambda aws-api-gateway aws-serverless

7
推荐指数
1
解决办法
3247
查看次数

Mongodb atlas:如何使用 Atlas 控制台的过滤器选项应用限制和排序

我正在使用 Mongodb Atlas,需要获取最后 10 条记录。为此,必须应用具有排序和限制选项的过滤器。在 mongo shell 中,我们是这样做的:

db.category.find().sort( { name: 1 } ).limit( 5 )
Run Code Online (Sandbox Code Playgroud)

或者

db.category.find().limit( 5 ).sort( { name: 1 } )
Run Code Online (Sandbox Code Playgroud)

如何使用 Mongodb Atlas 控制台的过滤器选项来获得所需的结果?我没有找到任何有关此的文档,是否在某处记录了如何使用过滤器选项?

mongodb mongodb-query mongodb-atlas

6
推荐指数
1
解决办法
525
查看次数