mongodb - KMongo 查询从 Mongo Shell 产生不同的结果

标签 mongodb kotlin kotlin-coroutines kmongo

我目前正在使用 KMongo,它非常好。简单易用,语法优美等。
但是我在查询一些我无法弄清楚的数据时遇到了一个问题。我正在过滤某些字段,当我在 Mongo Shell 上运行查询时或 robo 3T它工作正常。然而,当我尝试在我的 Kotlin 应用程序上运行时,它(仅在某些情况下)不起作用。我这样查询:

    collection.find(
            MyEntity::name regex filter.name,
            MyEntity::role eq filter.role,
    )

但我也尝试用接收过滤值的 native 查询编写一个字符串,我遇到了同样的问题。一个具体的例子是这个查询:{ '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/

相关文章:

android - 如何使用 Retrofit2 获取带有邮政编码 JSON 正文的地址列表

android - 在 `runBlockingTest` 测试 Room 的事务查询

javascript - 嵌套模式字段上的 Mongoose 文本索引

android - 重建 Android Instant App 后,使用功能模块中基本模块中定义的颜色失败

spring - MongoDb Spring 存储库的 @Query 命名参数

使用 ConcurrentHashMap 进行 Kotlin 并发,同时在不使用锁的情况下检索和删除

android - 将流量转换为实时数据的最佳方式

android - 取消自定义 CoroutineScope

python - 从很大范围的数字中分配一个数字的最佳解决方案是什么?

mongodb - 如何在embeddedjs中格式化日期