deno.land / x / mongoose@6.7.5 / benchmarks / benchjs / delete.js
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137'use strict';const mongoose = require('../../lib');const Benchmark = require('benchmark');
const suite = new Benchmark.Suite();
const Schema = mongoose.Schema;const mongoClient = require('mongodb').MongoClient;
// to make things work in the way the are normally described online.../* *global.Schema = Schema; *global.mongoose = mongoose; */
/** * These are all the benchmark tests for deleting data */
mongoose.connect('mongodb://localhost/mongoose-bench', function (err) { if (err) { throw err; } mongoClient.connect('mongodb://localhost', function (err, client) { if (err) { throw err; }
const db = client.db('mongoose-bench');
const UserSchema = new Schema({ name: String, age: Number, likes: [String], address: String, });
const User = mongoose.model('User', UserSchema); const user = db.collection('user');
const mIds = []; const dIds = [];
const data = { name: 'name', age: 0, likes: ['dogs', 'cats', 'pizza'], address: ' Nowhere-ville USA', };
// insert all of the data here let count = 1000; for (let i = 0; i < 500; i++) { User.create(data, function (err, u) { if (err) { throw err; } mIds.push(u.id); --count || next(); }); const nData = {}; nData.name = data.name; nData.age = data.age; nData.likes = data.likes; nData.address = data.address; user.insertOne(nData, function (err, res) { dIds.push(res.insertedId); --count || next(); }); }
function closeDB() { User.count(function (err, res) { if (res !== 0) { console.log('Still mongoose entries left...'); } mongoose.disconnect(); }); user.count({}, function (err, res) { if (res !== 0) { console.log('Still driver entries left...'); } if (err) { throw err; } client.close(); }); }
suite .add('Delete - Mongoose', { defer: true, fn: function (deferred) { User.remove({ _id: mIds.pop() }, function (err) { if (err) { throw err; } deferred.resolve(); }); }, }) .add('Delete - Driver', { defer: true, fn: function (deferred) { user.deleteOne({ _id: dIds.pop() }, function (err) { if (err) { throw err; } deferred.resolve(); }); }, }) .on('cycle', function (evt) { if (process.env.MONGOOSE_DEV || process.env.PULL_REQUEST) { console.log(String(evt.target)); } }) .on('complete', function () { closeDB(); if (!process.env.MONGOOSE_DEV && !process.env.PULL_REQUEST) { const outObj = {}; this.forEach(function (item) { const out = {}; out.stats = item.stats; delete out.stats.sample; out.ops = item.hz; outObj[item.name.replace(/\s/g, '')] = out; }); console.dir(outObj, { depth: null, colors: true }); } }); function next() { suite.run({ async: true }); } });});
Version Info