File tree Expand file tree Collapse file tree 2 files changed +22
-3
lines changed
src/Jenssegers/Mongodb/Query Expand file tree Collapse file tree 2 files changed +22
-3
lines changed Original file line number Diff line number Diff line change @@ -978,9 +978,13 @@ protected function compileWhereBasic(array $where)
978978 {
979979 extract ($ where );
980980
981- // Replace like with a Regex instance.
982- if ($ operator == 'like ' ) {
983- $ operator = '= ' ;
981+ // Replace like or not like with a Regex instance.
982+ if (in_array ($ operator , ['like ' , 'not like ' ])) {
983+ if ($ operator === 'not like ' ) {
984+ $ operator = 'not ' ;
985+ } else {
986+ $ operator = '= ' ;
987+ }
984988
985989 // Convert to regular expression.
986990 $ regex = preg_replace ('#(^|[^ \\\])%# ' , '$1.* ' , preg_quote ($ value ));
Original file line number Diff line number Diff line change @@ -71,6 +71,21 @@ public function testLike(): void
7171 $ this ->assertCount (1 , $ users );
7272 }
7373
74+ public function testNotLike (): void
75+ {
76+ $ users = User::where ('name ' , 'not like ' , '%doe ' )->get ();
77+ $ this ->assertCount (7 , $ users );
78+
79+ $ users = User::where ('name ' , 'not like ' , '%y% ' )->get ();
80+ $ this ->assertCount (6 , $ users );
81+
82+ $ users = User::where ('name ' , 'not LIKE ' , '%y% ' )->get ();
83+ $ this ->assertCount (6 , $ users );
84+
85+ $ users = User::where ('name ' , 'not like ' , 't% ' )->get ();
86+ $ this ->assertCount (8 , $ users );
87+ }
88+
7489 public function testSelect (): void
7590 {
7691 $ user = User::where ('name ' , 'John Doe ' )->select ('name ' )->first ();
You can’t perform that action at this time.
0 commit comments