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