Разница между _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 в этом случае).