2
我有一个MongoDB文档集合,每个文档代表一个鱼。 然后,我的应用程序的用户可以通过创建对鱼集合的查询来定义类型的鱼。此查询可以是非常复杂的,使用Conditional Operators等在MongoDB中存储(复杂)MongoDB查询
例如,用户可以定义 “非常不正常的鲨鱼般的鱼” 是通过返回的鱼:
{'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()?
用户在窗体中构建查询;他们不知道幕后发生了什么。我从他们的表单输入构建查询,所以不,我目前没有执行eval()。 – Dan
对于'eval',你必须使用'array(',它看起来和序列化值一样丑,所以使用后者一个。 –
谢谢!我不知道serialize(),它正是我想要的。 – Dan