У меня есть простая модель мангуста, на которую я называю найти с концевым макс 100 он вызывает функцию обратного вызова сделано:Node.js + мангуст найти узел зависает, когда более 100 результатов
this.find({}).limit(100).exec(done);
Обратный вызов никогда не вызывается, если Я изменяю эту строку в (или большее число)
this.find({}).limit(101).exec(done);
Там нет ошибки в любом месте, база данных продолжает работать, но этот узел замерзает приложения и должен быть перезапущен.
Если я подключен к серверу, чтобы подключиться к той же базе данных и подключиться к оболочке mongo, то в той же коллекции find ({}) возвращает все ~ 700 коллекций менее чем за секунду. Когда я клонировал одну и ту же базу данных на свой локальный ПК и запускал приложение для подключения к локальной базе данных, он работал, но приложение зависает на сервере, если оно подключается к базе данных на том же сервере.
Любая идея, как отладить этот?
Edit1: Добавлен файл модель:
Модель файл:
'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;
Использование:
foodModel.getAllFoods(function (err, docs) {
if (err) {
res.sendStatus(500);
return;
}
res.send(docs);
});
getActiveFoods прекрасно работает (возвращает 96 Документы)
напишите свой файл модели – wrleskovec
Добавлен и также пример того, как я его использую. Я бы использовал его без ограничений, но я экспериментировал, где это происходит, и выяснил это поведение. – kapa
В течение последних двух дней был еще два подобных вопроса, которые не были решены. Какую версию Mongoose вы используете? – JohnnyHK