0

我的问题(再次)是关于 OPA 数据库高级 API 的。

我声明了以下数据模型:

database click = @mongo
db /click/click : intmap(Scan.scan)

这是 Scan.scan 类型:

type Scan.scan = {
  user : int
  qr : int
  date : Date.date
}

我的问题是我需要在数据库中查询给定“qr”属性的具体“点击”,但使用 intmap 的事实迫使我检索所有点击,然后在整个列表中手动搜索与给定的“qr”参数匹配。

我实际上正在做的是通过获取所有点击/click/click然后对其应用 List.filter ......但我有性能问题(我觉得我在做 MongoDB 的工作)

所以我的问题很简单:我是否错过了 OPA 数据库高级 API 的某些内容,或者我是否必须对我的点击集合进行数据迁移,因为我无法检索未存储在任何地方的 intmap 索引值别的。

我希望我的问题足够清楚。感谢您的回复。

4

1 回答 1

1

在这种情况下我通常做的是建立另一个索引,例如

db /click/by_qr : intmap(Scan.scan)

或者

db /click/by_qr : intmap(int) // int represents user id

当然,这意味着您必须小心维护索引。我的理解是最终会有更好的方法来处理这个问题,但现在你必须手动完成;我同意这不是一个很好的解决方案。

于 2013-09-05T18:04:54.320 回答