MongoDB执行操作后,Express服务器崩溃

时间:2018-01-20 15:04:57

标签: node.js mongodb express mongoose

我使用ExpressJS和MongoDB使用MongooseJS编写Node.js服务器。

我有一个集合,我希望每个文档只能在24小时内存活。之后,我希望数据库删除文档。

我使用了两种方法 - 纯mongodb解决方案和使用mongoose-ttl npm包。

在我的情况下,每个人的工作方式都相同 - mongo会生成一个删除过旧文档的查询,之后我的ExpressJS服务器崩溃并出现错误:Error: socket hung up

mongoose-ttl案例的代码:

const ttl = require('mongoose-ttl');

const weatherMeasurementsSchema = Schema({ parentRoomId: { type: Schema.Types.ObjectId, ref: "Room" }, temperature: Number, humidity: Number, createdAt: Date });

weatherMeasurementsSchema.plugin(ttl, { ttl: "1m", interval: "1m" });

纯MongoDB案例的代码:

db.measurements.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 60})

出于测试目的,我将ttl和interval字段设置为仅1分钟,因此我可以提前收集结果。

我完全不知道出了什么问题,它是否与数据库连接有关?要连接到db,我使用:

mongoose.connect("mongodb://127.0.0.1/wisehome", { useMongoClient: true });

编辑:我收集了错误消息(两种情况都相同):

Error: socket hang up
    at createHangUpError (_http_client.js:253:15)
    at Socket.socketOnEnd (_http_client.js:345:23)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)

0 个答案:

没有答案