我目前使用的是KMongo,它非常好用。简单易用,语法好用,等等。
但我在查询一些数据时遇到了一个问题,我无法弄清楚。我正在过滤一些字段,当我在Mongo Shell或robo 3T上运行我的查询时,它工作得很好。然而,当我尝试在我的Kotlin应用程序上运行时,它(仅在某些情况下)无法工作。我是这样查询的:
collection.find(
MyEntity::name regex filter.name,
MyEntity::role eq filter.role,
)但我也尝试使用接收过滤值的原生查询来编写字符串,但我也遇到了同样的问题。一个具体的例子是这个查询:
{ 'role': 'VENDOR', 'name': 'Internal Revenue Service'}
如果我像这样在robo 3T上运行:
db.getCollection('MyEntity').find({ 'role': 'VENDOR', 'name': 'Internal Revenue Service'})我得到了我期望的结果,但是如果我使用KMongo运行,完全相同的查询(并且我用调试器重复检查),我在结果中什么也得不到:
collection.find("{ 'role': 'VENDOR', 'name': 'Internal Revenue Service'}")当我使用正则表达式进行查询时(与第一个示例类似),它似乎只返回较小的值:如果我使用'Internal Revenue Service'查询名称,它不会产生任何结果,但是如果我只使用'Internal'查询,结果是正确的。
有谁知道这会是什么吗?这看起来非常简单,但我搞不懂却要了我的命。
发布于 2020-09-03 13:08:46
一天后,我发现有一个被错误计算的偏移量注入。因此,当查询更具体时,它不会返回任何内容。这是一种悲哀。
https://stackoverflow.com/questions/63683616
复制相似问题