Node.js + mongoose find friert den Knoten ein, wenn mehr als 100 Ergebnisse vorliegen

Ich habe ein einfaches Mungomodell, bei dem ich find mit maximal 100 aufrufe, ruft es den erledigten Rückruf auf:

this.find({}).limit(100).exec(done);

Der Rückruf wird nie aufgerufen Wenn ich diese Zeile in (oder eine höhere Nummer) ändere

this.find({}).limit(101).exec(done);

Es gibt nirgendwo einen Fehler, die Datenbank funktioniert weiter, aber diese Node-App friert ein und muss neu gestartet werden.

Wenn ich in den Server ssh, um eine Verbindung zu derselben Datenbank und zur Mongo-Shell herzustellen, gibt find ({}) auf derselben Sammlung alle ~ 700 Sammlungen in weniger als einer Sekunde zurück. Wenn ich dieselbe Datenbank auf meinen lokalen PC geklont und die App zum Herstellen einer Verbindung zur lokalen Datenbank ausgeführt habe, hat sie funktioniert, aber die App friert auf dem Server ein, wenn sie eine Verbindung zur Datenbank auf demselben Server herstellt.

Ich habe eine Idee, wie ich dieses debuggen kann?

Edit1: Modelldatei hinzugefügt:

Modelldatei:

'use strict';

let mongoose = require('mongoose');
let Schema = mongoose.Schema;

let foodSchema = new Schema(
    {
        name: Object,
        type: String,
        description: Object,
        price: Number,
        priceBig: Number,
        active: Boolean
    },
    {
        collection: 'foods'
    }
);

let model = mongoose.model('food', foodSchema);

model.getAllFoods = function (done) {
    this.find({}, done);
};

model.getActiveFoods = function (done) {
    this.find({active: true}, done);
};

model.getFoodById = function (id, done) {
    this.findOne({_id: id}, done);
};

module.exports = model;

Verwendung

foodModel.getAllFoods(function (err, docs) {
    if (err) {
        res.sendStatus(500);
        return;
    }

    res.send(docs);
});

getActiveFoods funktioniert einwandfrei (gibt 96 Dokumente zurück)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage