在 ArangoDB 中,我有一个文档,其中包含一个用于存储“令牌”的字段。令牌是一个 int 值数组。例如:
token:
[0] = 5000
[1] = 250
[2] = 300
etc...
一个令牌最多可以有大约 50 个这些值。我想查询与我的 ArrayList 至少有 4 个标记的文档。例如,如果我有一个包含以下值的 ArrayList:
[0] = 1;
[1] = 200;
[2] = 400;
[4] = 600;
[5] = 570;
我会得到一个文档列表,这些文档至少有四个与我的数组相同的标记值。目前我只是在做:
String query = "FOR doc IN docs LET contained = (FOR token IN @tokenValues FILTER token IN doc.tokens[*]) FILTER LENGTH(contained) > 0 RETURN doc";
bindVars = new MapBuilder().put("tokenValues", tokenArray).get();
然后我得到至少有 1 个共同标记的文档,并在所有这些文档中搜索至少有 4 个共同标记的文档。我想有一种方法只能得到至少有 4 个共同点的结果,但我似乎无法弄清楚如何去做。