У меня есть специальный список (своего рода очередь, как в структуре данных, а не как рабочая очередь), которую я хочу сохранить в MongoDB. Мне нужно часто обращаться к этому единственному списку и манипулировать им в своем приложении, а у меня нет нескольких списков одного типа.
Было бы проще сохранить его в одном документе, но проблема, с которой я столкнулся, заключается в том, чтобы найти лучший способ ссылки на этот конкретный документ из кода моего приложения. Я не хочу запрашивать несколько документов, чтобы найти правильный, поскольку только один документ будет содержать этот список.
Я бы также предпочел не разбивать список на несколько документов в коллекции, так как это всего лишь короткий, простой список (он ограничен 400 элементами, а каждый элемент - это просто небольшой фрагмент текста, поэтому нет риска превышения лимита документов 4 МБ).
Я думал о нескольких способах сделать это, но ни один из них не кажется идеальным. Пожалуйста, дайте мне знать, если вы подходите правильно, или я что-то упускаю.
- Установите пользовательский
_id
для документа и жестко закодируйте его в моем приложении.
- Создайте коллекцию для документа, которая будет содержать только этот один документ, чтобы я мог получить его, просто получив первый документ в этой коллекции. (Это кажется вздорным)
- Используйте поле типа
document_name: 'my_special_list'
и получите документ, запросив document_name
. Я бы предпочел не делать этого, поскольку мне не нужны другие документы, подобные этому, поэтому только один документ будет иметь это поле document_name
.
- Используйте коллекцию документов, каждый из которых содержит поле индекса и поле содержимого элемента, и используйте map-reduction, чтобы получить из него список, или что-то в этом роде. Я бы предпочел этого не делать, поскольку просто получить список BSON, манипулировать им и сохранить его в документе намного проще.
- Используйте для этого другую технологию, так как MongoDB для нее не подходит.