-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtests.js
51 lines (46 loc) · 1.6 KB
/
tests.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
import mongoose from 'mongoose';
import { models, schema } from './index.js';
let Models = models({
Computer: [
'name |String |!|*|#|(3,16)', // ! = unique, * = required, # = index, (3,16) = minlength,maxlength
'price |Number |+U|+R|+I', // same as above, +U = unique, +R = required, +I = index
'madeIn=India |String |', // ref:CountryNames = reference to another model
'dateOfPurchase |Date |*', // Date = Date , * = required
"color |String |['red','blue','green']", // ['red','blue','green'] = enum
'inStock |Boolean|',
'storageTemp |Number |(-10,60)', // (0,) = min no upper limit
'globalStockQty |Number |(0,)', // (0,) = min, no upper limit // (,100) = no lower limit
],
Employee: [
'name|String|!|*|#|(3,16)',
'salary|Number|+R',
'dateOfJoining|Date|*',
'designation|String|*',
'gender|String|["male","female"]',
'isMarried|Boolean|*',
'address|String|*',
'phone|String|*',
],
});
console.log(Models); // { Computer: Model { Computer }, Employee: Model { Employee } }
// Connect to database
mongoose.connect('mongodb://localhost:27017/test', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
// add a computer as usual
let c = new Models.Computer({
name: 'Macbook Pro 2',
price: 2000 + Math.random() * 1000,
madeIn: 'India',
dateOfPurchase: new Date(),
color: 'red',
inStock: true,
storageTemp: 50,
globalStockQty: 100,
});
c.save();
// exit
setTimeout(() => {
mongoose.disconnect();
}, 100);