Node.js “a”是什么;“连接”;在MongoDB?

Node.js “a”是什么;“连接”;在MongoDB?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我已经和MongoDB合作一段时间了,我非常喜欢它。但有一件事我不明白,那就是“联系”。我在网上搜索过,所有的东西都有非常模糊和基本的答案。我正在使用名为“Atlas”的MongoDBs云服务,它将连接计数描述为 当前与此服务器的活动连接数。每个连接分配一个堆栈;因此,非常多的连接会导致显著的RAM使用 不过,我有几个问题 我想什么是联系?据我所知,服务器和数据库服务之间建立了连接。基本上当我使用mongoose.connect(…),已建立连接。因此,最多只能有一个连接。然而,当我测试我的程序

我已经和MongoDB合作一段时间了,我非常喜欢它。但有一件事我不明白,那就是“联系”。我在网上搜索过,所有的东西都有非常模糊和基本的答案。我正在使用名为“Atlas”的MongoDBs云服务,它将连接计数描述为

当前与此服务器的活动连接数。每个连接分配一个堆栈;因此,非常多的连接会导致显著的RAM使用

不过,我有几个问题

我想什么是联系?据我所知,服务器和数据库服务之间建立了连接。基本上当我使用
mongoose.connect(…),已建立连接。因此,最多只能有一个连接。然而,当我测试我的程序时,我注意到我的连接数是2,在一些时刻,它一路飙升到7,然后上升到5,并波动。“连接”是否与客户端有关?在Atlas的仪表板上显示我的最大连接量为500。这个值代表什么?这是否意味着一次只能有500名用户使用我的网站?如果是这样的话,我怎样才能增加这个数字呢?或者,我如何确保超过500个连接永远不会通过?或者连接被打开,我必须手动关闭?因为我一直在从教程中学习,我从未见过/听到过类似的事情


谢谢

mongoose.connect不会将自身限制为1个到Mongo服务器的连接

默认情况下,mongoose会创建一个包含5个Mongo连接的池

如有必要,可以更改此默认值

mongoose
    .connect(mongoURI, {poolSize : 200});

请参阅Atlas中的更多连接数量,因为为了使群集运行,还进行了一些内部连接,这些连接可能包括以下连接:

  • 从客户端建立的连接
  • 主设备和辅助设备之间的内部连接
  • 由于它是一个托管服务,并且所有内容都被监视,因此来自监视代理的连接也是如此

  • 当自动化工作时,来自自动化代理的连接也会工作


因此,每当在Atlas中创建新集群时,即使没有连接任何客户端,您也会在metrics页面中看到一些连接。

这取决于具体情况。是否在每个请求上创建新的mongo连接?这是PHP和其他无状态语言的工作方式,但通常在Node中,您可以创建一个全局连接池,并将其重新用于客户端。我不相信我会这样做,但我可能错了。我有我的模式,并在开始时连接到数据库。然后在每次请求时(需要数据库中的信息),我只需像
User.find(…)
那样查询数据库,就这样了。它是单个连接还是连接池?我不熟悉mongo和mongoose,但使用MySQL我总是创建一个连接池,因此如果已经有一个传出查询,它将创建第二个连接,即使只有一个客户端,我也可以一次运行多个查询。一个连接是一个到mongod正在侦听的端口的TCP连接。抱歉,我不确定我是否仍然能理解它。连接意味着1个到mongodb服务器的连接?所以我正在开发一个应用程序,我做了一个查询,不知怎么的,我跳到了7个连接,它就在那里。我必须手动关闭连接吗?7个连接是如何打开的