Мы запускаем две копии приложения на основе django в экземпляре Apache.У нас есть этот код Python при загрузке объекта из базы данных:
id = pymongo.objectid.ObjectId(hex_string)
d = self.collection.find_one({ '_id': id })
assert id == d['_id']
В одном из двух приложений (в зависимости от того, какое нажатие мы выберем вторым) утверждение не выполняется.Мы посмотрели на идентификаторы, и они одинаковы.Плюс, когда мы меняем его на:
assert str(id) == str(d['_id'])
Утверждение проходит.На наших машинах разработки (Win 7 64-bit, django dev server вместо Apache) это работает нормально.
Стек: Ubuntu 10.04 LTS, Apache 2.2.14, Python 2.6.5, MongoDB 2.0, Pymongo2.0.1
Обновление: Мы столкнулись с другой проблемой, подобной этой.Мы фактически начали ссылаться на объекты как идентификаторы объектов BSON, и это решило вторую проблему.Однако проблема в этом вопросе все еще возникает, даже с использованием идентификаторов объектов BSON.