mkrd / DictDataBase

A python NoSQL dictionary database, with concurrent access and ACID compliance
MIT License
234 stars 11 forks source link

Use glob match for dictionary keys #58

Open mrzv opened 10 months ago

mrzv commented 10 months ago

Suppose I have a database with the following layout:

A/
  meta.json
  data.json
B/
  meta.json
  data.json
C/
  ...

Then suppose I try to read all the metadata via:

DDB.at('*/meta').read()

This will return the contents of only one of the meta.json, what I'd like is the dictionary of all of them indexed by 'A', 'B', 'C', .... In other words, I'd like the glob wildcard match to be used as keys, not the last component of the path.

Is it possible to add such functionality?

P.S. I realize that it's possible to reorganize the database into something like:

meta/
    A.json
    B.json
    C.json
data/
    A.json
    B.json
    C.json

But I think that's less flexible.

mkrd commented 10 months ago

Hi! I can look into that in the next few days! You could also put all the data into a single json file, which would also increase the speed since it wouldn’t have to read multiple files. But I guess you have some requirement such that they need to be separate?

mrzv commented 10 months ago

It's a way to avoid unnecessary locking and conflicts. And thanks for looking into it!