I have a different item types, each item has different number of attributes some attributes might contain an arbitrary number of values. For example, a building which has amenities attribute, this attribute has many different possible values a user should be able to select these values for the item Building from a list. Some examples of these values are Balcony, Pet Allowed, WiFi. Another item is Car this car have different attributes like Model, Speed, Class each of them has a single possible value.
In addition to Attributes I have a different nested Categories for each item, for example a Vehicle category, is a parent of Car category which is also a parent of BMW Car category. As you can see, the second requirement can be modeled easily for a Relational Database but the first one is very hard to model for Non-relational Database like MongoDB. My app will be used by huge number of users, and both categories and attributes are subject to Insert/Update/Delete operations also they may be involved in some reports generation process.

I think about using MongoDB as DBMS, but I'm not sure yet about this decision.

  • You might want to consider adding (a screenshot of) an ERD (Entity Relationship Diagram) to further establish your requirements. Anything is possible and adding more details might increase your chance of finding out for yourself what the best solution might be and provide us with more details to allow us to answer your question. As it currently stands your question could be answered either way.
    – John K. N.
    Jan 9 '18 at 6:42

To answer your base question, why not. Value lists are easy to make, child - parent can be made with references. You even mix those two to the single key.

Not the answer you're looking for? Browse other questions tagged or ask your own question.