Node.js + mangosta encuentra el nodo de congelación cuando más de 100 resultados
Tengo un modelo de mangosta simple en el que llamo encontrar con límite máximo 100, llama a la devolución de llamada realizada:
this.find({}).limit(100).exec(done);
La devolución de llamada nunca se llama si modifico esta línea en (o cualquier número más alto)
this.find({}).limit(101).exec(done);
No hay ningún error en ninguna parte, la base de datos sigue funcionando, pero esta aplicación de nodo se congela y debe reiniciarse.
Si ingreso al servidor para conectarme a la misma base de datos y conectarme a Mongo Shell, en la misma colección find ({}) devuelve todas las ~ 700 colecciones en menos de un segundo. Cuando cloné la misma base de datos en mi PC local y ejecuté la aplicación para conectarme a la base de datos local, funcionó, pero la aplicación se congela en el servidor si se conecta a la base de datos en el mismo servidor.
¿Alguna idea de cómo depurar este?
Edit1: archivo de modelo agregado:
Archivo modelo:
'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;
Uso:
foodModel.getAllFoods(function (err, docs) {
if (err) {
res.sendStatus(500);
return;
}
res.send(docs);
});
getActiveFoods funciona bien (devuelve 96 documentos)