2012-01-20 3 views
1

Моя настройка mongodb сохраняет мои данные в основном ненормализованными, я храню только достаточные данные пользователя, которые я хотел бы отображать с сообщением. Но я все равно всегда храню _id связанного пользователя или связанного с ним должности, чтобы сказать голосование. Некоторые из идентификаторов происходят из ajax-вызовов (в конечном итоге хранятся в виде строк), а другие поступают непосредственно с сервера mongodb (они сохраняются в типе данных, полученных из OID), поэтому прямо сейчас, когда я их сохраняю, у меня есть сочетание связанных идентификаторов как строки или OID. Мои вопросы моют, я должен преобразовывать их все в строки или все в OIDs?Хранить связанные ключи как OID или строки в MongoDB

+0

Когда ваш _id приходит из ajax-вызова, откуда они возникли? Если они не в правильном формате, они не смогут конвертировать в OID. –

ответ

3

Объекты. Они более эффективны с точки зрения пространства, а сравнение ObjectIds быстрее, чем сравнение строк. Вы всегда должны преобразовывать входящую строку обратно в ObjectId (например, oid = new ObjectId (строка)). Я не могу думать об исключении, где вам нужны строки.

+0

Ключи, например? Они могут быть только струнами. –

+0

Хм, ну, желая сценарий, в котором у вас есть ObjectIds, и вы хотите намеренно преобразовать их в строки, чтобы вы могли их использовать, поскольку значения полей звучат как часть проблемы схемы. Но вы правы, что это может быть причиной. Это довольно там, хотя;) –