2015-04-28 8 views
8

mam prosty kod node.js który próbuje pobrać obiekt, wypełnić pola, a następnie zaktualizować ten sam cel:MongoError: próba zapisu poza granice buforowe

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

    }); 
}); 

Kiedy próbuję wykonać aktualizacja Mongo rzuca:

MongoError: attempt to write outside buffer bounds. 

Czy ktoś może wyjaśnić, co robię źle?

+0

Co zwraca funkcja "generateCode()"? – JohnnyHK

+0

ciąg znaków - 512 znaków. –

+0

Czy możesz zaktualizować swoje pytanie, dodając przykładową wartość kodu, która powoduje błąd? – JohnnyHK

Odpowiedz

1

Ten błąd generalnie wystąpił podczas próby zapisania/aktualizacji dokumentu zawierającego informacje o ogromnych informacjach/informacje o nielegalnym typie.

W mongodb, maksymalny rozmiar dokumentu BSON wynosi 16 megabajtów. Oto link po więcej szczegółów.