Хранение/работа с тегами в MongoDB для системы управления документами

StackOverflow https://stackoverflow.com/questions/6810440

  •  25-10-2019
  •  | 
  •  

Вопрос

Поэтому я работаю над Pet Project, где я храню различные текстовые файлы. Я настроил свое приложение, чтобы сохранить теги в качестве строки в одной из моих коллекций, поэтому примером был бы пример:

Теги: "Linux apache wsgi"

Хранить их и ищет их, работающие просто отлично, но мой вопрос возникает, когда я хочу сделать что -то вроде облака тегов, подсчитывать все различные теги или создать систему динамического выбора на основе тегов, какой лучший способ разбить их на работать с? Или я должен хранить их в другую сторону?

Логически я мог бы отсканировать каждую запись и получить все теги, сломать их на основе пространства, а затем как -то кэшировать результат. Может быть, это правильный ответ, но я хотел спросить мудрость сообщества.

Я использую Pimongo для взаимодействия с моей базой данных.

Это было полезно?

Решение

Или я должен хранить их в другую сторону?

Стандартный способ хранить теги - хранить их как массив. В вашем случае БД будет выглядеть как -то вроде:

tags: ['linux', 'apached', 'wsgi']

... Как лучше всего разбить их, чтобы работать?

Это то, что Уменьшение карты предназначен для. Это эффективно «сканирует каждую запись». Выход карты/уменьшения - это еще одна коллекция, которую вы можете запросить.

Тем не менее, есть и другой способ сделать это, и это сохранение «счетчиков» и обновить их. Поэтому, когда вы сохраняете новый документ, вы также увеличиваете все теги, связанные с этим документом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top