2015-04-28 2 views
8

У меня есть простой Node.js код, который пытается извлечь объект, заполнить поле, а затем обновить один и тот же объект:MongoError: попытка записать внешние буферные границы

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

    }); 
}); 

Когда я пытаюсь выполнить команду обновление mongo бросает:

MongoError: attempt to write outside buffer bounds. 

Может кто-нибудь объяснить, что я делаю неправильно?

+0

Что возвращает 'generateCode()'? – JohnnyHK

+0

строка - 512 символов. –

+0

Можете ли вы обновить свой вопрос, чтобы включить пример кода, вызывающего ошибку? – JohnnyHK

ответ

1

Эта ошибка обычно возникала при попытке сохранить/обновить документ с огромной информацией/незаконной информацией о типе.

В mongodb максимальный размер документа BSON составляет 16 мегабайт. Вот link для более подробной информации.

Смежные вопросы