-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.0.1
-
Component/s: None
-
None
-
Environment:Ubuntu 11.10
-
None
-
None
-
None
-
None
-
None
-
None
-
None
The positional operator appears to be failing for the pymongo driver.
Let's say I start off with this:
user_collection.find_one() { "_id" : ObjectId("4ec14962960a44259a000001"), "email" : "nathan@example.com", "last_login" : ISODate("2011-11-14T11:01:22.344Z"), "password" : "sha1$445cf$1df2eb52e3f7834566b0fcdfe942cb8f03400c64", "permission" : [{ "account" : "test", "type" : "owner" } ] }
When I run this in pymongo:
spec = {'permission.account': 'test'} permission = { 'account': 'test', 'type': 'readonly' } user_collection.update(spec, {'permission.$': permission})
It updates the user record to look like the following:
{ "_id" : ObjectId("4ec14962960a44259a000001"), "permission.$" : { "account" : "test", "type" : "readonly" } }
Notice all the other info in record is gone, and the field name is messed up. I am not sure if I am missing something with Mongo driver or if this is a bug or what. Could someone look into this perhaps. Much appreciated.