将变体类型转换为BSON

时间:2014-10-01 13:29:21

标签: opa

我有以下变体:

type variant = {one} / {two:int} / {three:string}

使用opa2doc()方法,我希望能够向MongoDB数据库询问包含特定变量值(一,二或三)的所有行,而不考虑每个变量的值。我使用的是低级mongodb API。

我尝试过类似的事情:

opa2doc({ kind={two=_} })

但它不起作用。

适用于opa2doc({ kind={one} }),因为此变体没有任何附加数据。

知道如何使这项工作吗?

1 个答案:

答案 0 :(得分:1)

如果要使用绑定到本机MongoDB query API,则可能需要构建正确的MongoDB查询文档。查找模式的查询(而不是与相等性比较)使用特殊的query operators,它们是JSON值。 Opa的高级数据库API使用自己的类似ML的运算符为您完成此任务。您的案例的原生MongoDB查询文档需要$exists operator

{ "kind.two": { $exists: true } }

在旧语法中应该是:

Bson.opa2doc({ `kind.two`= { `$exists`= true } })