【问题标题】:I want to know about mongodb我想了解mongodb
【发布时间】:2020-02-08 13:20:02
【问题描述】:

我目前正在创建一个可读写的 API 服务器。使用 MongoDB

该库使用 Mongoose。

不知db.close()读写的时候是不是一定要用。

datamodel.js:

var db = mongoose.connect('mongodb://localhost/testdb', {useNewUrlParser: true,useUnifiedTopology:true});
mongoose.Promise = global.Promise;

.....
Boards = mongoose.model("boards", BoardSchema);
exports.Boards = Boards;

路由/getList.js:

let result = await Boards.find().sort({"date": -1});

我应该在读写时关闭上面声明的数据库db.close()吗?

【问题讨论】:

  • 我在这里没有看到任何java代码。你应该使用mongoose.connection.close()
  • 需要关闭吗?
  • 严格来说可能不是必要的(请查阅您的Mongoose 文档以明确了解),但绝不会出错,而且总是一个好主意(如果操作正确)。

标签: java node.js mongodb api


【解决方案1】:

(非常笼统的答案,但应该可以帮助您开始研究什么)

关闭 MongoDB 连接首先取决于连接是如何建立的。

  1. 您是否在服务器启动时初始化连接:如果是,则不应关闭连接。 (但是在服务器启动时初始化连接是个坏主意,因为如果与服务器的连接丢失(例如数据库服务器重启),那么您还必须重新启动应用程序或设置reconnectTries) p>

  2. 您是否使用connection pool:如果您使用连接池,则关闭和打开连接由 Mongoose 自己负责。您所要做的就是,release 使用后的连接,以便其他请求可用。

  3. 您是否为每个请求创建连接:如果是,那么您应该在返回响应之前关闭连接,否则您将很快用完数据库服务器上的可用连接。

【讨论】:

  • 我没有使用游泳池。 ** var db = mongoose.connect ('mongodb: // localhost / testdb', {useNewUrlParser: true, useUnifiedTopology: true});猫鼬.Promise = global.Promise;
  • 该库使用 Mongoose....我听说 Mongoose 会自动执行 DB.close()。不是吗?
【解决方案2】:

您可以拨打mongoose.disconnect()关闭连接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    相关资源
    最近更新 更多