私はいくつかのデータ変更を行っていますが、メモリ内データベースに多数の辞書を貼り付けて、それに対して単純にクエリを実行できれば、かなり簡単になります。
たとえば、次のようなものです。
people = db([
{"name": "Joe", "age": 16},
{"name": "Jane", "favourite_color": "red"},
])
over_16 = db.filter(age__gt=16)
with_favorite_colors = db.filter(favorite_color__exists=True)
ただし、次の 3 つの交絡要因があります。
- 一部の値は Python オブジェクトであり、それらをシリアル化することは問題外です (遅すぎて、ID が壊れます)。もちろん、これを回避することはできます (たとえば、すべてのアイテムを大きなリストに格納し、そのリスト内のインデックスをシリアル化することで... しかし、それにはかなりの手間がかかる可能性があります)。
- 何千ものデータがあり、それらに対して検索を多用する操作 (グラフ トラバーサルなど) を実行するので、効率的な (つまり、インデックス付きの) クエリを実行できる必要があります。
- 例のように、データは構造化されていないため、スキーマを事前に定義する必要があるシステムは扱いにくいでしょう。
では、そんなものは存在するのでしょうか。それとも、一緒に何かをクラッジする必要がありますか?