2

MongoDB のドキュメント コレクションがあり、各ドキュメントはfishを表します。私のアプリケーションのユーザーは、 fish コレクションに対してクエリを作成することで、fish のタイプを定義できます。このクエリは、条件演算子など を使用して非常に複雑になる可能性があります。

たとえば、ユーザーは「非常に異常なサメのような魚」を、以下によって返される任意の魚として定義できます。

{'length':{$gte : 45}, 'name' : {$in : ['Klaus', 'Alistair', 'Steve']}}

しかし、新しい魚が頻繁に発見されているため、ユーザーが作成したクエリに基づいて魚にタイプを割り当てる必要があります。つまり、このクエリを今後何度も使用する必要があります。したがって、私の考えは、次のようなドキュメントを含むコレクションを作成することです。

{'typename' : 'highly abnormal shark-like fish', 
'query' : '{'length':{$gte : 45}, 'name' : {$in : ['Klaus', 'Alistair', 'Steve']}}'}

私の質問は、クエリを文字列として保存する必要がありますか? それが最善の方法ですか?

新しい魚が発見されたら、PHP ドライバーを使用してクエリを適用する必要があることに注意してください。クエリの PHP-array-version を文字列として保存してから、eval() を使用する必要がありますか?

4

1 に答える 1

1

ユーザーがクエリを入力文字列として作成する場合は、それを保存してください。後で編集できるようにします。しかし、あなたはすでにそうevalしていますよね?

それ以外の場合は、クエリ ドキュメントをシリアル化して保存します。

于 2011-08-09T21:18:51.267 に答える