-
Type: Improvement
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Codecs, Configuration
-
Environment:MacOS X 10.6 (which implies a little endian x86/64 CPU)
In python:
>>> import pymongo
>>> import uuid
>>> from pymongo import Connection
>>> c = Connection('localhost', 27017)
>>> db = c.test
>>> db.foo.insert(
)
ObjectId('4e318fb98f1e81eac4000001')
In java:
UUID id = UUID.fromString("aaf4c61d-dcc5-e8a2-dabe-de0f3b482cd9");
Mongo mongo = new Mongo();
DB db = mongo.getDB("test");
DBObject dbo = new BasicDBObject();
dbo.put("java", id);
db.getCollection("foo").insert(dbo);
Result:
> db.foo.find()
(yes, with the patch from SERVER-1201 applied)
Java seems to serialize/deserialize the UUIDs as little endian according to BSONEncoder.java, line 354
Changing this would however break a lot of applications out there. However, the python/java incompatibility is really bad, so it should be fixed in my humble opinion...
- is related to
-
PYTHON-387 Support Java and C# legacy byte orders for UUIDs
- Closed