deno.land / x / mongoose@6.7.5 / benchmarks / populate.js

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
'use strict';const mongoose = require('../');const Schema = mongoose.Schema;const docs = process.argv[2] ? process.argv[2] | 0 : 100;
const A = mongoose.model('A', Schema({ name: 'string' }));
const nested = Schema({ a: { type: Schema.ObjectId, ref: 'A' }});
const B = mongoose.model('B', Schema({ as: [{ type: Schema.ObjectId, ref: 'A' }], a: { type: Schema.ObjectId, ref: 'A' }, nested: [nested]}));
let start;let count = 0;
mongoose.connect('mongodb://localhost/mongoose-bench', function(err) { if (err) { return done(err); }
A.create({ name: 'wooooooooooooooooooooooooooooooooooooooooot' }, function(err, a) { if (err) { return done(err); }
let pending = docs; for (let i = 0; i < pending; ++i) { new B({ as: [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a], a: a, nested: [{ a: a }, { a: a }, { a: a }, { a: a }, { a: a }, { a: a }] }).save(function(err) { if (err) { return done(err); } --pending; if (pending === 0) { // console.log('inserted %d docs. beginning test ...', docs); start = Date.now(); test(); } }); } });});
function test() { let pending = 2;
B.find().populate('as').populate('a').populate('nested.a').exec(handle); B.findOne().populate('as').populate('a').populate('nested.a').exec(handle);
function handle(err) { if (err) { throw err; } count++;
if (Date.now() - start > 1000 * 20) { return done(); }
if (--pending === 0) { return test(); } }}

function done(err) { if (err) { console.error(err.stack); }
mongoose.connection.db.dropDatabase(function() { mongoose.disconnect(); console.log('%d completed queries on mongoose version %s', count, mongoose.version); });}
mongoose

Version Info

Tagged at
a year ago