2015-04-28 12 views
8

Tôi có một mã Node.js đơn giản mà đang cố gắng để lấy đối tượng, cư lĩnh vực này và sau đó cập nhật cùng một đối tượng:MongoError: nỗ lực để viết vọt đệm bên ngoài

var MongoClient = require('mongodb').MongoClient 
, Db = require('mongodb').Db 
, Server = require('mongodb').Server 
, ObjectID = require('mongodb').ObjectID; 

var db = new Db('testing', new Server('localhost', 27017)); 
db.open(function(err, db){ 
    var Users = db.collection('users'); 
    Users.find({code : {$exists : false} }, {email : 1}, function(err,  users){ 
    users.forEach(function(user){ 
     var code = generateCode(); 
     var userID = user._id; 
     Users.update({ _id : user._id }, {$set : {code : code } }, function(err, results){ 
     if (err) console.log(err); 
     else console.log(results); 
     }); 

    }); 
}); 

Khi tôi cố gắng làm một cập nhật mongo đang ném:

MongoError: attempt to write outside buffer bounds. 

Ai đó có thể giải thích tôi đang làm gì sai?

+0

Trả về 'generateCode()' là gì? – JohnnyHK

+0

một chuỗi - dài 512 ký tự. –

+0

Bạn có thể cập nhật câu hỏi của mình để bao gồm giá trị mã ví dụ gây ra lỗi không? – JohnnyHK

Trả lời

1

Lỗi này thường xảy ra khi cố gắng lưu/cập nhật tài liệu với thông tin lớn/thông tin loại bất hợp pháp.

Trong mongodb, kích thước tài liệu BSON tối đa là 16 megabyte. Dưới đây là link để biết thêm chi tiết.

Các vấn đề liên quan