You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -185,10 +190,10 @@ describe('$mod', function () {
185
190
186
191
describe('Match a Field Without Specifying Array Index',function(){
187
192
it('basic case',function(){
188
-
assert.equal("(data->'courses'->>'distance'='5K' OR EXISTS (SELECT * FROM jsonb_array_elements(data->'courses') WHERE jsonb_typeof(data->'courses')='array' AND value->>'distance'='5K'))",convert('data',{'courses.distance': '5K'},['courses']))
193
+
assert.equal("(data @> '{ \"courses\": { \"distance\": \"5K\" } }' OR EXISTS (SELECT * FROM jsonb_array_elements(data->'courses') WHERE jsonb_typeof(data->'courses')='array' AND value @> '{ \"distance\": \"5K\" }'))",convert('data',{'courses.distance': '5K'},['courses']))
189
194
})
190
195
it('direct match',function(){
191
-
assert.equal('(data->>\'roles\'=\'Admin\' OR EXISTS (SELECT * FROM jsonb_array_elements(data->\'roles\') WHERE jsonb_typeof(data->\'roles\')=\'array\' AND value #>>\'{}\'=\'Admin\'))',convert('data',{'roles': 'Admin'},['roles']))
196
+
assert.equal('(data @> \'{ "roles": "Admin" }\' OR EXISTS (SELECT * FROM jsonb_array_elements(data->\'roles\') WHERE jsonb_typeof(data->\'roles\')=\'array\' AND value @> \'"Admin"\'))',convert('data',{'roles': 'Admin'},['roles']))
192
197
})
193
198
it('$in',function(){
194
199
assert.equal("(data->>'roles' IN ('Test', 'Admin') OR EXISTS (SELECT * FROM jsonb_array_elements(data->'roles') WHERE jsonb_typeof(data->'roles')='array' AND value #>>'{}' IN ('Test', 'Admin')))",convert('data',{'roles': {$in: ["Test","Admin"]}},['roles']))
assert.equal(convertUpdate('data',{$pull: {cities: 'LA'}}),'jsonb_set(data,\'{cities}\',to_jsonb(ARRAY(SELECT value FROM jsonb_array_elements(data->\'cities\') WHERE NOT value #>>\'{}\'=\'LA\')))')
59
+
assert.equal(convertUpdate('data',{$pull: {cities: 'LA'}}),'jsonb_set(data,\'{cities}\',to_jsonb(ARRAY(SELECT value FROM jsonb_array_elements(data->\'cities\') WHERE NOT value @> \'"LA"\')))')
60
60
})
61
61
it('$push',function(){
62
62
assert.equal(convertUpdate('data',{$push: {cities: 'LA'}}),'jsonb_set(data,\'{cities}\',to_jsonb(array_append(ARRAY(SELECT value FROM jsonb_array_elements(data->\'cities\')),\'"LA"\')))')
0 commit comments