当前位置: 首页 > 面试题库 >

Mongoose.js通过一个connect()调用创建到MongoDB的多个连接

冉锋
2023-03-14
问题内容

我正在通过Node.js Express应用程序中的Mongoose与MongoDB建立单一连接:

var express = require('express');
var mongoose = require('mongoose');
mongoose.connect('localhost', 'test');

然后,我定义架构,然后定义模型,最后定义从数据库中拉出所有用户的控制器:

app.get('/users', function (req, res) {
  return User.find(function (err, users) {
    if (!err) {
      return res.send(users);
    }
  });
});

这些数据库连接在应用程序启动期间打开,并且在node.js应用程序期间保持打开状态。

让我困扰的是为什么我要打开5个连接?关闭node.js应用程序后,所有5个连接都将关闭。
在此处输入图片说明

相关说明 :对于REST API服务器,最好始终打开MongoDB连接。还是根据每个用户请求手动打开/关闭连接更好?d


问题答案:

这是因为Mongoose使用5个连接池(默认情况下),这些连接在整个应用程序中共享。为了获得最佳性能,最好将它们保持打开状态。

您可以通过options参数将默认行为更改为mongoose.connect。例如:

mongoose.connect('localhost', 'test', { server: { poolSize: 3 }}); // Use 3 connections


 类似资料:
  • 问题内容: 下面的代码通过SSH在一台计算机上运行grep并打印结果: 我如何一次将5台机器全部置入grep(这样就不会造成重大延迟),而不是将所有这些都放入5个变量中并全部打印出来。 问题答案: 您需要将调用放在单独的线程(或进程中,但这可能会过大),这反过来又要求代码位于函数中(无论如何,这是一个好主意:模块的顶部没有大量代码水平)。 例如: If you had many more than

  • 问题内容: 我是Elastic的新手,我需要一种方法,只需调用一个即可将多个文档推送到Elastic 。 主体架构如下所示: 我尝试了摄取API和管道,但没有运气。 可能吗? 问题答案: 谢谢@JinLee和@NishantSaini的帮助。我想记录一下我所做的。 首先,添加端点。因此,API调用现在为:。 现在将标题设置为 然后身体必须是这样的: 现在一切正常!

  • 在遵循adm策略后,mongo吊舱成功启动并运行, 现在我正试图部署一个连接到mongodb的springboot应用程序,但是由于以下错误,pod重新启动了多次, 当通过openshift部署时,springboot应用程序pod可以连接到mongodb pod,所以我使用k8s创建了一个虚拟pod,并尝试连接mongodb pod, 我怀疑这个问题可能是因为OpenShift阻止springb

  • 示例:创建一个点到点连接 默认情况下,Docker 会将所有容器连接到由 docker0 提供的虚拟子网中。 用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接。 解决办法很简单:创建一对 peer 接口,分别放到两个容器中,配置成点到点链路类型即可。 首先启动 2 个容器: $ docker run -i -t --rm --net=none base /bin/bashroot

  • 问题内容: 如何使用Node.js通过SSL连接到MongoDB服务器? 我已经阅读了一些驱动程序(mongojs,mongodb- native )的源代码,并且我已经搜索了一段时间,但是似乎找不到任何合适的教程,指南或文档。 问题答案: 如评论中所建议,具有所需的一切。 我使用以下命令启动并运行: 编辑 你也可以从猫鼬做ssl :

  • 我想写一个为我创建多个片段的方法,但我不知道如何做到这一点。几次尝试之后,我变得更加困惑。 这是我通常如何创建两个片段 创建片段的第二次调用 由于newInstance方法是静态的,我似乎不知道如何创建一个泛型方法并只传入类类型。另外,传入newInstance的对象并不总是数组。以下是我的尝试: