Я пытаюсь вставить объект в Mongo, используя собственную библиотеку узлов. У меня есть объект, который имеет свойство массива, которое имеет 1620 объектов. В документации говорится, что у mongo есть поддержка для вложения до 100 уровней, на которые я не сталкиваюсь. Объекты в массиве - это просто объекты, у них нет массивов. Размер всего документа со всеми элементами составляет всего 456 КБ. Если я ограничу массив до 788 объектов, они будут сохранены в базе данных, но это приведет к сбою приложения. Я столкнулся с проблемой с родной библиотекой mongo для узла? Отсутствует настройка базы данных?Ограничение массива Mongo
var droplist = convertOptionList(data);
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) {console.log('error'); throw err;}
var collection = db.collection('droplist');
collection.insert(droplist, function(err, objects) {
if(err) {
console.log('error');
throw err;
}
//never see this message. app crashes but with fewer items the query passes
console.log("A-Ok");
});
db.close();
});
Update
Разработка версии кода. Незначительное изменение для перемещения db.close() внутри обратного вызова для вставки и предотвращения вызова db.close до того, как все объекты были вставлены.
var droplist = convertOptionList(data);
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) {console.log('error'); throw err;}
var collection = db.collection('droplist');
collection.insert(droplist, function(err, objects) {
if(err) {
console.log('error');
throw err;
}
db.close();
});
});
Какая ошибка? – WiredPrairie
Должен был уточнить. Я запускал приложение с супервизором, и я видел, как приложение сработало и перезапустилось, когда запрос был выполнен, поэтому на самом деле я не видел сообщение об ошибке от Mongo. – ThrowsException