我目前正在使用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'
查询,则结果是正确的。有谁知道它可能是什么?似乎很简单,但我无法弄清楚,这真让我丧命。
最佳答案
一天后,我发现注入(inject)了错误计算的偏移量。因此,当查询更具体时,它什么也不返回。
有点可悲。
关于mongodb - KMongo查询从Mongo Shell产生不同的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63683616/