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