I'm evaluating a nosql solution for implement a file system like structure, with millions of items, where key features have to be:
- speed finding "parents" or "direct childs" or "subtree childs" of an item filtered by n item properties, with page results sorted by item property.
having this requirements i split the problem in 2 task:
- model the recursive items structure for search childs/subtree childs
- model the item structure for search over items property
Now the power of nosql schema free is a good feature for store different properties for each file, and this is good for point 2.
I have instead some doubt over point 1 about the pros / cons to use a document database (example mongodb) with a single collection of items and a materialized path design pattern, or using a graph database (example arangodb) with 2 collection: items for data (document collection), and itemsParents for parent-child relation (edge collection) and a graph traverse function.
There are advantages in performance using a graph database for my requirements?
graph traverse is more efficient over materialized path filter to accomplish my task?
If yes, can you explain me why?
Thanks