Подтвердить что ты не робот

Meteor.Collection.ObjectID() против MongoDB ObjectId()

Почему Meteor.js использует собственные алгоритмы для идентификаторов?

Почему он не использует MongoDB ObjectId()?

4b9b3361

Ответ 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 для получения дополнительных изменений в соглашениях об именах.