Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Gone away
-
None
-
None
-
None
-
Storage Execution
-
ALL
Description
The AccessMethod code above the indexes groups values into added, removed, and unchanged based on value comparisons. Since this doesn't consider types, all values where only the type changed are considered "unchanged" and the index is not notified of the change.
> db.foo.insert({_id:1, a:1})
|
WriteResult({ "nInserted" : 1 })
|
> db.foo.ensureIndex({a:1})
|
{
|
"createdCollectionAutomatically" : false,
|
"numIndexesBefore" : 1,
|
"numIndexesAfter" : 2,
|
"ok" : 1
|
}
|
> db.foo.find({a:1}, {a:1, _id:0})
|
{ "a" : 1 }
|
> db.foo.save({_id:1, a: NumberLong(1)})
|
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
|
> db.foo.find({a:1}, {a:1, _id:0})
|
{ "a" : 1 }
|
> db.foo.find({a:1}, {a:1, _id:0}).hint({$natural: 1})
|
{ "a" : NumberLong(1) }
|
Attachments
Issue Links
- related to
-
SERVER-16801 update considers a change in numerical type to be a noop
-
- Closed
-