MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongoose - RangeError:Kích thước ngăn xếp cuộc gọi tối đa đã vượt quá

Tôi cũng gặp phải vấn đề này và tôi bắt đầu đào qua mã nguồn mongoose (phiên bản 3.8.14). Cuối cùng nó đã dẫn tôi đến dòng này trong

  • mongoose / node_modules / mongodb / lib / mongodb / collection / core.js -> insert (...) -> insertWithWriteCommands (...) ->
  • mongoose / node_modules / mongodb / lib / mongodb / collection / batch / order.js -> Bul.insert (docs [i]) -> addToOperationsList (...) -> bson.calculateObjectSize (tài liệu, sai);

    var bsonSize =bson.calculateObjectSize (document, false);

Rõ ràng, điều này gọi BSON.calculateObjectSize, gọi tính toán allowObjectSize sau đó sẽ đệ quy vô hạn. Tôi không thể tìm hiểu sâu về điều gì đã gây ra nó, nhưng nhận thấy rằng nó có thể liên quan đến các chức năng ràng buộc của trình bao bọc mongoose với Lược đồ. Vì tôi đang chèn dữ liệu thô vào mongoDB, khi tôi quyết định thay đổi chèn hàng loạt trong mongoose thành một đối tượng javascript tiêu chuẩn, sự cố đã biến mất và chèn hàng loạt đã xảy ra chính xác. Bạn có thể làm điều gì đó tương tự.

Về cơ bản, mã của tôi đến từ

//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) {});

đến

//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. Chiến lược đăng ký / xuất bản Meteor cho các bộ sưu tập phía máy khách duy nhất

  2. So khớp ObjectId thành chuỗi cho $ graphLookup

  3. đặt trường là trống cho đối tượng mongo bằng cách sử dụng mongoose

  4. Làm thế nào để giải quyết vấn đề thiếu giao dịch trong MongoDB?

  5. Liệt kê tin nhắn cuối cùng của mỗi cuộc trò chuyện, liên quan đến người dùng, trong MongoDB