|
Does the 2.6 behavior make sense to you if you think of {a: {$ne: <value>}} the same as {$nor: [{a: <value>}]}?
> db.version()
|
2.6.4
|
> db.test.find()
|
{ "_id" : 1, "a" : [ { "b" : 2 }, { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
{ "_id" : 2, "a" : [ { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
> db.test.find({"a.c.d":null})
|
{ "_id" : 1, "a" : [ { "b" : 2 }, { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
> db.test.find({"a.c.d":"a"})
|
> db.test.find({$nor:[{"a.c.d":null}]})
|
{ "_id" : 2, "a" : [ { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
> db.test.find({$nor:[{"a.c.d":"a"}]})
|
{ "_id" : 1, "a" : [ { "b" : 2 }, { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
{ "_id" : 2, "a" : [ { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
> db.test.find({"a.c.d":{$ne:null}})
|
{ "_id" : 2, "a" : [ { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
> db.test.find({"a.c.d":{$ne:"a"}})
|
{ "_id" : 1, "a" : [ { "b" : 2 }, { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
{ "_id" : 2, "a" : [ { "b" : 3, "c" : { "d" : 4, "e" : 5 } } ] }
|
>
|
|