• 1000
Один из клиентов, который содержит информацию о разных клиентах моей системы.
Животный, содержащий информацию о животных. В дополнение к этому, каждое животное имеет поле «покупатель» со значением идентификатора документа, который представляет его хозяина.
Я знаю, что мог бы напрямую указать документы животного в качестве атрибутов документов клиента, но я предпочел сделать это в первый раз.
Мой вопрос касается следующего запроса:
exports.getbyCustomer = (req, res, next) => {
Animal.find({customer: req.params.id}).collation({locale: "en" }).sort({'name': 1})
.then(animals => res.status(200).send(animals))
.catch(error => res.status(400).send({ error: error.message }));
}
Когда я сделаю этот запрос, будет ли MongoDB «тупо» перебирать каждый документ коллекции животных и сравнивать идентификатор, переданный в параметре, с идентификатором текущего документа? Если есть совпадение, mon go сохранить его для будущего возврата?
Если это так, могут ли индексы улучшить это поведение? Я читал, что индексы позволяют создать двоичное дерево для ускорения обработки базы данных (в частности, не относящейся к MongoDB). Есть ли способ сделать это с помощью MongoDB?
Быстро прочитав документацию mongoDB: https://docs.mongodb.com/manual/indexes/#create -an-index
Я создал индекс для коллекции животных, просто указав «customer»: 1, но я сомневаюсь, что он будет делать то, что я проиллюстрировал на предыдущем рисунке.