I have a special list (a sort of queue, as in the data structure, not as in a work queue) that I want to store in MongoDB. I need to access and manipulate this single list often in my application - and I don't have several of the same type of list.
It would be easiest to store it in a single document, but the problem I'm having is figuring out the best way to reference that particular document from my application code. I don't want to have to query several documents to locate the correct one, since only one document will contain this list.
I'd also rather not split the list into several documents in a collection, since it is just a short, simple list (it is limited to 400 elements, and each element is just a short piece of text, so there is no risk of overrunning the 4MB document limit).
I've thought of several ways I could do this, but none seem ideal. Please let me know if one is the right approach, or if I'm missing something.
- Set a custom
_id
for the document, and hard-code it in my application. - Create a collection for the document which will contain only that one document, so that I can retrieve it by just getting the first document in that collection. (This seems hacky)
- Use a field like
document_name: 'my_special_list'
and retrieve the document by querying ondocument_name
. I'd rather not do this since I have no need for other documents like this, so only one document would have thatdocument_name
field. - Use a collection of documents, each containing an index field and an element content field, and use map-reduce to get a list from it, or something along those lines. I'd rather not do this since simply retrieving a BSON list, manipulating it and storing it back in the document is so much more straightforward.
- Use a different technology for this, since MongoDB isn't suited for it.