File tree 3 files changed +5
-2
lines changed
3 files changed +5
-2
lines changed Original file line number Diff line number Diff line change 83
83
// Like operator with options
84
84
rsqlMongoDB (' lastName=~do*=si' );
85
85
// => { "lastName": { $regex: "do*", $options: "si" } }
86
+ rsqlMongoDB (' lastName=~"do=*"=si' );
87
+ // => { "lastName": { $regex: "do=*", $options: "si" } }
86
88
87
89
// Exists operator
88
90
rsqlMongoDB (' childs=exists=true' );
Original file line number Diff line number Diff line change @@ -248,8 +248,8 @@ module.exports = function (input) {
248
248
mongoOperatorQuery [ exp1 ] = { $nin : typedValues } ;
249
249
break ;
250
250
case "=~" :
251
- const typedExp2Arr = typedExp2 . split ( "=" ) ;
252
- mongoOperatorQuery [ exp1 ] = { $regex : typedExp2Arr [ 0 ] , $options : typedExp2Arr [ 1 ] || "" } ;
251
+ var expArr = exp2 . split ( / ( = ) (? = (?: [ ^ " ] | " [ ^ " ] * " ) * $ ) / g ) ;
252
+ mongoOperatorQuery [ exp1 ] = { $regex : setType ( expArr [ 0 ] ) , $options : expArr [ 2 ] || "" } ;
253
253
break ;
254
254
case "=exists=" :
255
255
mongoOperatorQuery [ exp1 ] = { $exists : typedExp2 } ;
Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ describe('rsql-mongodb', function () {
56
56
expect ( rsqlMongoDB ( 'lastName=~do*' ) ) . to . deep . include ( { "lastName" : { $regex : "do*" , $options : "" } } ) ;
57
57
expect ( rsqlMongoDB ( 'lastName=~do*=i' ) ) . to . deep . include ( { "lastName" : { $regex : "do*" , $options : "i" } } ) ;
58
58
expect ( rsqlMongoDB ( 'lastName=~do*=mxs' ) ) . to . deep . include ( { "lastName" : { $regex : "do*" , $options : "mxs" } } ) ;
59
+ expect ( rsqlMongoDB ( 'lastName=~"do=*"=mxs' ) ) . to . deep . include ( { "lastName" : { $regex : "do=*" , $options : "mxs" } } ) ;
59
60
} ) ;
60
61
it ( "Test operator Exists ('=exists=')" , function ( ) {
61
62
expect ( rsqlMongoDB ( 'childs=exists=true' ) ) . to . deep . include ( { "childs" : { $exists : true } } ) ;
You can’t perform that action at this time.
0 commit comments