-
Notifications
You must be signed in to change notification settings - Fork 0
/
queryServer.js
80 lines (73 loc) · 2.01 KB
/
queryServer.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
var mongoose = require('mongoose');
var querySystem = exports;
// mongoose automagically handles connections pools,
// so this should be a connection object returned by
/// mongoose.connect();
querySystem.applyJSONQuery = function (qStruct, query) {
queryOPTable = {
"all" : query.and,
"and" : query.any,
"box" : query.box,
"circle" : query.circle,
"comment" : query.comment,
"elemMatch" : query.elemMatch,
"equals" : query.equals,
"exists" : query.exists,
"find" : query.find,
"geometry" : query.geometry,
"gt" : query.gt,
"gte" : query.gte,
"hint" : query.hint,
"in" : query.in,
"intersects" : query.intersects,
"lean" : query.lean,
"limit" : query.limit,
"lt" : query.lt,
"lte" : query.lte,
"maxDistance" : query.maxDistance,
"maxScan" : query.maxScan,
"mod" : query.mod,
"ne" : query.ne,
"near" : query.near,
"nearSphere" : query.nearSphere,
"nin" : query.nin,
"nor" : query.nor,
"or" : query.or,
"polygon" : query.polygon,
"populate" : query.populate,
"regex" : query.regex,
"select" : query.select,
"size" : query.size,
"skip" : query.skip,
"slice" : query.slice,
"snapshot" : query.snapshot, // Double check this
"sort" : query.sort,
"where" : query.where,
"within" : query.within
};
var pQS = qStruct;
do {
if (pQS.op && pQS.args) {
try {
queryOPTable[pQS.op].apply(query, pQS.args);
} catch (e) {}
pQS = pQS.next;
} else { pQS = null; }
} while (pQS);
return query;
}
/* Outdated logic TBR when connPool and export logic is finished
var qServer = net.createServer(function (conn) {
console.log("Query Server started.");
conn.on('end', function () {
console.log("Query Server disconnected.");
});
conn.on('data', function (msg) {
var query = JSON.parse(msg);
var qObject = parseJSONQuery(query);
})
});
qServer.listen(queryServerPort, function () {
console.log("Query Server listening on port " + queryServerPort);
});
*/