deno.land / x / mongoose@6.7.5 / test / geojson.test.js

geojson.test.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
'use strict';
/** * Module dependencies. */
const start = require('./common');
const assert = require('assert');
const mongoose = start.mongoose;const Schema = mongoose.Schema;
describe('geojson', function() { let db; let pointSchema;
before(function() { db = start();
pointSchema = new mongoose.Schema({ type: { type: String, enum: ['Point'], required: true }, coordinates: { type: [Number], required: true } }); });
after(async function() { await db.close(); });
beforeEach(() => db.deleteModel(/.*/)); afterEach(() => require('./util').clearTestData(db)); afterEach(() => require('./util').stopRemainingOps(db));
it('driver query', function() { const City = db.model('City', new Schema({ name: String, location: pointSchema }));
const colorado = { type: 'Polygon', coordinates: [[ [-109, 41], [-102, 41], [-102, 37], [-109, 37], [-109, 41] ]] }; const denver = { type: 'Point', coordinates: [-104.9903, 39.7392] }; return City.create({ name: 'Denver', location: denver }). then(() => City.findOne({ location: { $geoWithin: { $geometry: colorado } } })). then(doc => assert.equal(doc.name, 'Denver')); });
it('within helper', function() { const denver = { type: 'Point', coordinates: [-104.9903, 39.7392] }; // acquit:ignore:start const City = db.model('City', new Schema({ name: String, location: pointSchema }));
const colorado = { type: 'Polygon', coordinates: [[ [-109, 41], [-102, 41], [-102, 37], [-109, 37], [-109, 41] ]] }; // acquit:ignore:end return City.create({ name: 'Denver', location: denver }). then(() => City.findOne().where('location').within(colorado)). then(doc => assert.equal(doc.name, 'Denver')); });
it('index', function() { const denver = { type: 'Point', coordinates: [-104.9903, 39.7392] }; const City = db.model('City', new Schema({ name: String, location: { type: pointSchema, index: '2dsphere' // Create a special 2dsphere index on `City.location` } })); // acquit:ignore:start const colorado = { type: 'Polygon', coordinates: [[ [-109, 41], [-102, 41], [-102, 37], [-109, 37], [-109, 41] ]] }; // acquit:ignore:end
return City.create({ name: 'Denver', location: denver }). then(() => City.findOne().where('location').within(colorado)). then(doc => assert.equal(doc.name, 'Denver')); });
it('near', function() { const denver = { type: 'Point', coordinates: [-104.9903, 39.7392] }; const City = db.model('City', new Schema({ name: String, location: { type: pointSchema, index: '2dsphere' // Create a special 2dsphere index on `City.location` } }));
// "Garden of the Gods" in Colorado const $geometry = { type: 'Point', coordinates: [-104.8719443, 38.8783536] };
return City.create({ name: 'Denver', location: denver }). // acquit:ignore:start then(() => City.init()). // acquit:ignore:end // Without a 2dsphere index, this will error out with: // 'unable to find index for $geoNear query" then(() => City.findOne({ location: { $near: { $geometry } } })). then(doc => assert.equal(doc.name, 'Denver')); });});
mongoose

Version Info

Tagged at
a year ago