2012-02-22 55 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