ArangoDB LIKE 函数似乎没有过滤掉包含“*”的值
ArangoDB LIKE function doesn't seem to filter out values containing '*'
名为 "PatternInfo" 的集合包含以下文档:
1. { "pattern": "abcde*fgh"}
2. { "pattern": "test*new" }
3. { "pattern": "abc%^def" }
每当以下查询 运行 过滤模式时返回包含“*”的空结果。
for doc in PatternInfo
filter like(doc.pattern, "%test*n%", false)
return doc
我什至尝试过转义“*”,尽管 LIKE 的 ArangoDB 文档仅指定要转义的“%”和“_”。
查询或ArangoDB本身有问题吗?
LIKE()
的 C++ 实现中似乎存在错误。
V8 实现在我的测试中产生了预期的结果:
for doc in PatternInfo
filter noopt(v8(like(doc.pattern, "%test*n%", false)))
return doc
它匹配 2。{ "pattern": "test*new" }
正确。
我代表您创建了错误报告:
https://github.com/arangodb/arangodb/issues/4919
名为 "PatternInfo" 的集合包含以下文档:
1. { "pattern": "abcde*fgh"}
2. { "pattern": "test*new" }
3. { "pattern": "abc%^def" }
每当以下查询 运行 过滤模式时返回包含“*”的空结果。
for doc in PatternInfo
filter like(doc.pattern, "%test*n%", false)
return doc
我什至尝试过转义“*”,尽管 LIKE 的 ArangoDB 文档仅指定要转义的“%”和“_”。
查询或ArangoDB本身有问题吗?
LIKE()
的 C++ 实现中似乎存在错误。
V8 实现在我的测试中产生了预期的结果:
for doc in PatternInfo
filter noopt(v8(like(doc.pattern, "%test*n%", false)))
return doc
它匹配 2。{ "pattern": "test*new" }
正确。
我代表您创建了错误报告: https://github.com/arangodb/arangodb/issues/4919