2012-02-22 58 views
0

我正在用morphia。如u知道一個簡單的搜索,我可以用這個:在地圖中查找field

q.field("fieldname").containsIgnoreCase(texttosearch); 

但我的字段類型是地圖。所以我必須像這樣改變它(使用點):

q.field("mapname.fieldname").containsIgnoreCase(texttosearch); 

但我想再次搜索所有字段。我可以通過在所有領域重複來做到這一點。問題是我的場數不是靜態的。 我該如何解決這個問題?

回答

3

您不應將其存儲爲映射,而應將其存儲爲鍵/值對的數組/列表。然後,您可以搜索關鍵字段並對其進行索引。這不是嗎啡目前爲你做的事情,但它可能是Map的另一種存儲格式。這將是一個非常不同的格式。

看看這個討論更多background

+0

thx。改爲String類型。 – kubudi 2012-02-24 01:59:25