[SERVER-4515] $all:[null] seems to match everything, unless indexed Created: 17/Dec/11  Updated: 11/Jul/16  Resolved: 21/Jul/14

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 2.6.0

Type: Bug Priority: Major - P3
Reporter: Aaron Staple Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-7388 Implement all query operators using M... Closed
Operating System: ALL
Participants:

 Description   

> c.drop()
true
> c.save({c:1})
> c.save({c:'a'})
> c.save({c:null})
> c.save({})
> c.find({c:{$all:[]}}) // seems to match nothing
> c.find({c:null}) // matches as expected
{ "_id" : ObjectId("4eec1e9942f62c7f2f5eedee"), "c" : null }
{ "_id" : ObjectId("4eec1e9d42f62c7f2f5eedef") }
> c.find({c:{$all:[null]}}) // seems to match everything
{ "_id" : ObjectId("4eec1e9542f62c7f2f5eedec"), "c" : 1 }
{ "_id" : ObjectId("4eec1e9742f62c7f2f5eeded"), "c" : "a" }
{ "_id" : ObjectId("4eec1e9942f62c7f2f5eedee"), "c" : null }
{ "_id" : ObjectId("4eec1e9d42f62c7f2f5eedef") }
> c.find({c:{$all:[1]}})
{ "_id" : ObjectId("4eec1e9542f62c7f2f5eedec"), "c" : 1 }
> c.ensureIndex({c:1})
> c.find({c:{$all:[]}})
> c.find({c:null})
{ "_id" : ObjectId("4eec1e9942f62c7f2f5eedee"), "c" : null }
{ "_id" : ObjectId("4eec1e9d42f62c7f2f5eedef") }
> c.find({c:{$all:[null]}}) // now matches are bounded by index range
{ "_id" : ObjectId("4eec1e9942f62c7f2f5eedee"), "c" : null }
{ "_id" : ObjectId("4eec1e9d42f62c7f2f5eedef") }
> c.find({c:{$all:[1]}})
{ "_id" : ObjectId("4eec1e9542f62c7f2f5eedec"), "c" : 1 }


Generated at Thu Feb 08 03:06:13 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.