MongoDB отлично подходит для тегирования, потому что он multikeys функциональность
например, предположим, что вы создаете свои документы о продукте, как это
{
_id : 1,
name : "Widget",
tags: [
{color : "blue"},
{size : 10},
{foo : "bar"}
]
}
Вы можете создать индексмассив тегов и каждый элемент будет проиндексирован.Итак, чтобы найти все товары синего цвета, вы можете сделать запрос следующим образом:
db.Products.find({tags : {color : "blue"}});
Самое замечательное в этом - каждый элемент может иметь совершенно другой набор тегов "атрибуты", и запросы смогутиспользуйте индекс - некоторые могут иметь цвет и размер, другие могут иметь вес и рост.
Что касается кэширования, в MongoDB важно иметь достаточно ОЗУ, чтобы иметь возможность хранить ваш рабочий набор в памяти (достаточно длявсе доступные данные и индексы, которые будут проведены).Таким образом, данные останутся в памяти, делая запросы очень быстрыми.Поэтому вам может не понадобиться технология кэширования сверху.