ссылки имеют один или несколько тегов, поэтому сначала может показаться естественным вставлять теги:Как бы вы эффективно реализовали эти запросы в MongoDB?
link = { title: 'How would you implement these queries efficiently in MongoDB?'
url: 'http://stackoverflow.com/questions/3720972'
tags: ['ruby', 'mongodb', 'database-schema', 'database-design', 'nosql']}
Как бы эти запросы будут осуществляться эффективно?
- Получить ссылки, которые содержат один или более данные метки (для поиска ссылок с заданными тегами)
- Получить список всех тегов без повторений (для поиска ящика автозаполнение)
- Получить самые популярные теги (для отображения первых 10 тегов или облака тегов)
идеи представлять ссылку, как описано выше основан на MongoNY presentation, слайд 38.
Для того, чтобы добавить поле популярности для тега, тег должен был бы быть добавлены или перемещены в отдельную коллекцию, правильно? – randomguy
вам не обязательно, вы можете сохранить его в одной коллекции и просто использовать dbref для указания на тег. другая коллекция упростит вам управление вашими данными (это то, что я рекомендую). – Asaf
В коллекции тегов я бы предложил поместить имя тега в поле _id вместо использования отдельного поля тега. Кроме того, если вы не возражаете делать одно обновление для каждого тега, а не использовать $ in, вы можете сделать запрос просто {_id: "tag_name"} и использовать функцию upsert для создания новых записей тегов. – mstearn