MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose — RangeError:przekroczono maksymalny rozmiar stosu wywołań

Miałem ten sam problem i zacząłem przekopywać kod źródłowy mangusty (wersja 3.8.14). W końcu doprowadziło mnie to do tej linii w ciągu

  • mongoose/node_modules/mongodb/lib/mongodb/collection/core.js -> wstaw (...) -> insertWithWriteCommands (...) ->
  • mongoose/node_modules/mongodb/lib/mongodb/collection/batch/ordered.js -> bulk.insert(docs[i]) -> addToOperationsList(...) -> bson.calculateObjectSize(dokument, fałsz);

    var bsonSize =bson.calculateObjectSize(dokument, fałsz);

Wygląda na to, że wywołuje to BSON.calculateObjectSize, który wywołuje obliczeniaObjectSize, które następnie powtarzają się w nieskończoność. Nie byłem w stanie zagłębić się w to, co go spowodowało, ale doszedłem do wniosku, że może to mieć coś wspólnego z funkcjami wiązania mangusty ze schematem. Ponieważ wstawiałem surowe dane do mongoDB, kiedy zdecydowałem się zmienić wstawianie zbiorcze w mangoose na standardowy obiekt javascript, problem zniknął, a wstawianie zbiorcze przebiegło poprawnie. Możesz być w stanie zrobić coś podobnego.

Zasadniczo mój kod pochodził z

//EDIT: mongoose.model needs lowercase 'm' for getter method

var myModel = mongoose.model('MyCollection');
var toInsert = myModel();
var array = [toInsert];
myModel.collection.insert(array, {}, function(err, docs) {});

do

//EDIT: mongoose.model needs lowercase 'm' for getter method

var myModel = mongoose.model('MyCollection');
var toInsert = { //stuff in here 
   name: 'john',
   date: new Date()
};
var array = [toInsert];
myModel.collection.insert(array, {}, function(err, docs) {});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lokalizacja bazy danych mongodb na mac

  2. Jak skutecznie wykonywać różne czynności przy użyciu wielu kluczy?

  3. Jak powiedzieć Mongo, aby posortował kolekcję przed ograniczeniem wyników?

  4. MongoDB $min Operator potoku agregacji

  5. PHP Mongo Błąd odczytu z gniazda