2012-05-02 2 views
1

Я, вероятно, что-то пропустил, но я просто не могу понять, как MongoDB определяет диапазоны ключей с точки зрения типа.Как MongoDB определяет тип ключа осколка?

Скажем, у меня есть коллекция для профилей пользователей, которые выглядят так:

{userId : "123", profiles: [p1, p2], location: "loc"} 

Тогда, если я объявляю ключ осколка так:

{ shardcollection : "test.user_profile", key : {"userId":1} } 

Как будет работать диапазоны:

  1. Если userId в {1 ... 100000}?
  2. Если userId - некоторая строка, как сгенерированный UUID?

Как определить ключ осколка, который будет обрабатываться как строка, время md5 или что-то еще?

ответ

3

Сравнение по полях в монго производится в соответствии с порядком сравнения BSON. Подробнее см. Здесь. http://www.mongodb.org/display/DOCS/What+is+the+Compare+Order+for+BSON+Types и здесь для получения информации о создании конкретных типов http://www.mongodb.org/display/DOCS/Data+Types+and+Conventions

+0

спасибо, вопрос, если я не определить любой тип Монго просто обрабатывает значение как строка? – Julias

Смежные вопросы