Initial commit
This commit is contained in:
63
node_modules/mongodb/lib/operations/insert_many.js
generated
vendored
Normal file
63
node_modules/mongodb/lib/operations/insert_many.js
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
'use strict';
|
||||
|
||||
const OperationBase = require('./operation').OperationBase;
|
||||
const BulkWriteOperation = require('./bulk_write');
|
||||
const MongoError = require('../core').MongoError;
|
||||
const prepareDocs = require('./common_functions').prepareDocs;
|
||||
|
||||
class InsertManyOperation extends OperationBase {
|
||||
constructor(collection, docs, options) {
|
||||
super(options);
|
||||
|
||||
this.collection = collection;
|
||||
this.docs = docs;
|
||||
}
|
||||
|
||||
execute(callback) {
|
||||
const coll = this.collection;
|
||||
let docs = this.docs;
|
||||
const options = this.options;
|
||||
|
||||
if (!Array.isArray(docs)) {
|
||||
return callback(
|
||||
MongoError.create({ message: 'docs parameter must be an array of documents', driver: true })
|
||||
);
|
||||
}
|
||||
|
||||
// If keep going set unordered
|
||||
options['serializeFunctions'] = options['serializeFunctions'] || coll.s.serializeFunctions;
|
||||
|
||||
docs = prepareDocs(coll, docs, options);
|
||||
|
||||
// Generate the bulk write operations
|
||||
const operations = [
|
||||
{
|
||||
insertMany: docs
|
||||
}
|
||||
];
|
||||
|
||||
const bulkWriteOperation = new BulkWriteOperation(coll, operations, options);
|
||||
|
||||
bulkWriteOperation.execute((err, result) => {
|
||||
if (err) return callback(err, null);
|
||||
callback(null, mapInsertManyResults(docs, result));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function mapInsertManyResults(docs, r) {
|
||||
const finalResult = {
|
||||
result: { ok: 1, n: r.insertedCount },
|
||||
ops: docs,
|
||||
insertedCount: r.insertedCount,
|
||||
insertedIds: r.insertedIds
|
||||
};
|
||||
|
||||
if (r.getLastOp()) {
|
||||
finalResult.result.opTime = r.getLastOp();
|
||||
}
|
||||
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
module.exports = InsertManyOperation;
|
||||
Reference in New Issue
Block a user