1

我目前正在使用 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'用结果查询是正确的。

有谁知道它可能是什么?这似乎非常简单,但我无法弄清楚这让我很生气。

4

1 回答 1

0

一天后,我发现注入了错误计算的偏移量。因此,当查询更具体时,它什么也没有返回。那有点难过。

于 2020-09-03T05:08:45.893 回答