Как установить индекс для этой структуры? - PullRequest
0 голосов
/ 17 июня 2019

Мне нужна помощь, чтобы решить это решение.У меня есть такая структура в узле js (я использую mongoose):

var TestSchema = new mongoose.Schema({
        title: {
            type: String,
            trim: true,
        },
        refBusinesId: {
            type: ObjectId,
            required: true,
        },
    })

TestSchema.index({ title: 'text' });

Я использую приведенный ниже код, и все отлично:

await Test.find({ refBusinesId: ID, $text: { $search: TEXT} })

Но несколько вопросов для меня и меня 'ищу ответы на мои вопросы,

Я посмотрел результат этого запроса в MongoDB Compass, и мне кажется, что этот запрос не полностью проиндексирован (см. на фото)

MongoDB Compass Screen

Я хочу искать в компании, используя идентификатор бизнеса и используя $ text (поле заголовка), я хочу знать, есть ли способ сделать индексацию, которая имеет лучшийпроизводительность в этом запросе?

1 Ответ

0 голосов
/ 17 июня 2019

Я подозреваю, что вам понадобится составной индекс, например: { refBusinesId: 1, title: 'text' }, чтобы mongo мог только просматривать соответствующие деловые документы для поиска по названию.

Обратите внимание, что коллекции могут иметь только 1 текстовый индекс за раз, поэтому, если вы хотите добавить этот индекс, вам нужно удалить существующий текстовый индекс.

https://docs.mongodb.com/manual/core/index-text/ содержит более подробную информацию о текстовых индексах, текстовых индексах с составными индексами и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...