Meteor.Collection.ObjectID() против MongoDB ObjectId()
Почему Meteor.js использует собственные алгоритмы для идентификаторов?
Почему он не использует MongoDB ObjectId()?
Ответ 1
Meteor использует тот же метод для идентификатора объекта, если вы решите его использовать:
Meteor.Collection.ObjectID() совпадает с MongoDB ObjectID
Его просто под именем Meteor.Collection. Он использует EJSON для хранения идентификатора объекта в обычном JSON до конца клиента. Потому что в основном есть 2 базы данных с метеором
Minimongo
Это своего рода кеш mongodb на стороне клиента. Данные загружаются с основного mongodb на сервере до этого, когда браузер загружается. Когда изменения сделаны, они подталкиваются к серверу.
Сервер MongoDB
Это оригинальный mongodb от 10gen на сервере
Таким образом, из-за этих двух баз данных Meteor требует обертывания функций mongodb в Meteor.Collection и позволяет использовать тот же код как на клиенте, так и на сервере.
По умолчанию метеорит не будет использовать Object ID, он будет использовать произвольный буквенно-цифровой текст. Это делается для того, чтобы вы легко могли использовать ID в своем URL и ID в своих атрибутах html.
Если вы используете new Meteor.Collection.ObjectID(), вы получите объект ObjectID, который будет использовать спецификацию Mongodb ObjectID на сервере. Значение метки времени в ID объекта не задерживается, но это не должно навредить.
Ответ 2
Так как 0.9.1 Meteor предлагает использовать Mongo.ObjectID вместо Meteor.Collection.ObjectID. В основном оба одинаковы.
Проверьте history.md для получения дополнительных изменений в соглашениях об именах.