给定:记录存储为一个简单的字符串DatabaseEntry键值,密钥看起来像:
- 节点_1
- 节点_1_PROP_1
- 节点_1_PROP_2
- 节点_1_PROP_3
- 节点2
- 节点_2_PROP_1
- 节点_2_PROP_2
- 节点_2_PROP_3
如何:只选择ID以NODE_1开头的记录,结果1-4?
我使用过Cursor.getNext(),但Cursor类的一般问题是它会一直转到下一个记录,所以如果我这样做,我每次都必须评估键前缀,以便在光标位于NODE_2时停止。
您需要使用辅助数据库。辅助数据库的理念是为每个记录提供额外的条件。因此,在您的示例中,您需要提供辅助密钥创建者,它将使用"NODE_1_PROP_1"并返回"NODE_1"作为辅助密钥。然后,您可以在辅助数据库中查询"NODE_1",它将返回所有以"NODE_2"为关键字前缀的记录。关键是,您不仅要使用密钥,还要使用记录中的任何适当内容。确保在辅助数据库中允许排序的重复项。
HTH。
我已经通过将字符串转换为二进制数组解决了这个问题,在这种情况下,NODE_1_PROP_1将先于NODE_2,这是我使用字符串作为键时的问题。