#php #mongodb #laravel #schema #database
#php #mongodb #laravel #схема #База данных
Вопрос:
Я пытаюсь создать индекс MongoDB для определенного поля со следующими входными данными:
Коллекция: сообщения
source_id (integer)
message_id (string)
subject (string)
timestamp (integer)
Мне нужно запросить эту коллекцию в полях source и uid.
Пример документа:
{
"_id" : ObjectId("53aad315bffebc5d378b4569"),
"source_id" : NumberLong(1),
"message_id" : "AMA9D2TP9zWA.kuhlman.lowell@dietrich.com",
"subject" : "Labore aut est amet temporibus mollitia et.",
"timestamp" : NumberLong(1364645191)
}
Простой db.messages.getIndexes() возвращает, что мой индекс message_id является NumberLong?
> db.messages.getIndexes()
[
{
"v" : 1,
"name" : "_id_",
"key" : {
"_id" : 1
},
"ns" : "hs.messages"
},
{
"v" : 1,
"name" : "s_1",
"key" : {
"s" : NumberLong(1)
},
"ns" : "hs.messages"
},
{
"v" : 1,
"name" : "m_1",
"key" : {
"m" : NumberLong(1)
},
"ns" : "hs.messages"
}
]
Комментарии:
1. Число, следующее за полем, указывает направление сортировки. Однако я бы не ожидал, что тип будет NumberLong . Можете ли вы поделиться командами, используемыми для создания индексов?
2. @James $коллекция->индекс (‘source_id’); $коллекция->индекс (‘message_id’); с github.com/jenssegers/laravel-mongodb
3. Направление сортировки, записываемое как NumberLong, будет артефактом либо кода laravel-mongodb, либо базового клиентского программного обеспечения. Возможно, стоит направить вопрос Github в этот проект. Индекс должен работать нормально в любом случае. Я протестировал это в оболочке mongo, заставив направление сортировки быть NumberLong. Запросы к этому индексу работают так, как и ожидалось. Вы можете проверить себя, выполнив запрос, который должен использовать индекс, и добавив .explain()