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 数组版本存储为字符串,然后使用 eval()?

4

1 回答 1

1

如果用户将查询构建为输入字符串,当然,存储它。您希望他们以后能够对其进行编辑。但是你已经这样做了eval,不是吗?

否则序列化查询文档并存储它。

于 2011-08-09T21:18:51.267 回答