5

Importing a 16.9 MB of json file in Mongodb with Nodejs throws the following error:

Opening new mongodb connection
Closing mongodb connection, force = true
{
  <b>error: RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 && <= 17825792. Received 17825795</b>
      at Buffer.write (buffer.js:1007:5)
      at serializeNumber (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:63:18)
      at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:711:17)
      at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
      at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
      at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
      at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
      at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
      at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
      at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18) {
    code: 'ERR_OUT_OF_RANGE'
  }
} ERROR
(node:28432) UnhandledPromiseRejectionWarning: RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 && <= 17825792. Received 17825795
    at Buffer.write (buffer.js:1007:5)
    at serializeNumber (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:63:18)
    at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:711:17)
    at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
    at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
    at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
    at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
    at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
    at serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17)
    at serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18)
(node:28432) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:28432) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I suppose the error occurs while inserting data in Mongodb:

...

const readFilePromise = promisify(fs.readFile);
const fileData: IOecdMigFile =JSON.parse(await readFilePromise(filePath, "utf8"));
await dropCollectionPromise("test_collection");
await insertPromise("test_collection",fileData);
...


export function insertPromise(
    collection: string,
    record: object
): Promise<void> {
    return _mongoProxy
        .connect()
        .then((db: mongo.Db) => db.collection(collection))
        .then((c: mongo.Collection) => c.insertOne(record))
        .then(async (_result: any) => {
            // console.log(result);
            await _mongoProxy.close();
        })
        .catch(async (err) => {
            await _mongoProxy.close(true);
            console.log({ error: err }, "ERROR");
            throw err;
        });
}

Christian Fritz
  • 20,641
  • 3
  • 42
  • 71
user1
  • 556
  • 2
  • 6
  • 22

0 Answers0