Идентификаторы документов коллекции метеоров: Random.id() или Meteor.Collection.ObjectID()

Когда я вставляю документы в свои коллекции Meteor, они имеют _id с формой Random.id:

Random.id();
// "wjQyQ6sGjzvNMDLiJ"

Когда я вставляю документы в те же коллекции непосредственно из MongoDB, они имеют _id в форме Meteor.Collection.ObjectID.

new Meteor.Collection.ObjectID();
// LocalCollection._ObjectID {_str: "b105582bc495617542af18e9"…}

Почему мое приложение использует Random.id? Это устаревшая настройка?

Варианты Meteor, когда я создал свое приложение:

[email protected]
[email protected]

Ответ 1

При создании вашей коллекции Meteor программно из вашего приложения у вас есть возможность указать параметр, который определяет, какой тип метода генерации идентификатора используется для генерации новых идентификаторов для документов в этой коллекции. По умолчанию используется функция генерации случайной строки, если параметр не указан. Ознакомьтесь с документацией Метеор, чтобы узнать, о чем я говорю. Если вы не укажете опцию, Meteor просто использует пакет random, чтобы сгенерировать эти строки идентификатора. Если вы проверите ссылку, вы увидите, что первым элементом в списке является функция генерации случайных идентификаторов. Здесь вызывается функция Random.id(). Очевидно, что переход непосредственно к MongoDB обходит этот возможный поток логики, в результате чего создается строка идентификатора типа MongoDB.