我目前正在使用KMongo,它非常好。使用简单,语法漂亮等。
但是在查询一些我无法弄清楚的数据时遇到了一个问题。我正在过滤某些字段,当我在Mongo Shellrobo 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/

10-11 22:49
查看更多