Разница между _id & $oid; $date & IsoDate в базе данных mongo
Мы используем mongo db для хранения определенных записей в производственной базе данных.
Мы видим, что наши записи имеют "_id" : { "$oid" : "50585fbcb046b2709a534502"}
в производственной базе данных, тогда как в базе данных qa мы видим ту же запись, что и "_id" : ObjectId(" 50585fbcb046b2709a534502 ")
.
Для дат мы видим "ld" : { "$date" : "2011-12-03T17:00:00Z"}
в базе данных prod, а "ld" :ISODate("2011-12-03T17:00:00Z")
- в qa базе данных.
Мы успешно тестировали наши запросы в среде qa, но беспокоились, что это может закончиться в производстве
1) Будут ли мои запросы java без проблем работать на prod и qa? (Я использую apache morphia для запроса)
2) Являются ли они внутренне хранятся одинаковым образом?
Ответы
Ответ 1
Чтобы ответить на два вопроса:
- Да, они будут
- Да, они одинаковы, это просто представление внутри элемента, который вы просматриваете (консоль или приложение) относительно того, как они отображаются. Консоль (в более поздних версиях в любом случае около 1,4+) будет отображать
ObjectId
и ISODate
(обычно), тогда как выбор ее непосредственно с языка сервера (Java в вашем случае) будет показывать все свойства объектов ($oid
и $date
в этом случае).