Skip to content

Commit 7293df7

Browse files
committed
Adds mongodb support for ORM query comparators
The only one that I'm not sure is ok is LIKE => $regex
1 parent 1bf32a6 commit 7293df7

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

lib/Drivers/DML/mongodb.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,35 @@ function convertToDB(obj) {
183183
continue;
184184
}
185185

186+
if (typeof obj[k].sql_comparator == "function") {
187+
var val = (k != "_id" ? obj[k].val : new mongodb.ObjectID(obj[k].val));
188+
var comp = obj[k].sql_comparator();
189+
var condition = {};
190+
191+
switch (comp) {
192+
case "gt":
193+
case "gte":
194+
case "lt":
195+
case "lte":
196+
case "ne":
197+
condition["$" + comp] = val;
198+
break;
199+
case "eq":
200+
condition = val;
201+
break;
202+
case "between":
203+
condition["$min"] = obj[k].from;
204+
condition["$max"] = obj[k].to;
205+
break;
206+
case "like":
207+
condition["$regex"] = obj[k].expr.replace("%", ".*");
208+
break;
209+
}
210+
211+
obj[k] = condition;
212+
continue;
213+
}
214+
186215
if (k == "_id") {
187216
obj[k] = new mongodb.ObjectID(obj[k]);
188217
}

0 commit comments

Comments
 (0)