问题标签 [kmongo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 对对象进行分组,然后使用单个查询对这些组进行排序
我需要实现一个 mongo 查询,该查询形成 2 个组,具体取决于是否avatarUrl
为非 null,然后按 . 对这些组进行排序lastName
。
以下是该系列的外观:
我需要这个查询来返回以下列表:
如您所见,它分为两组,每组按字母顺序排序。
有没有办法使用单个 mongo 查询来做到这一点?
我尝试使用这个:
但这显然行不通。
mongodb - mongodb查询:有条件查找的结果
我正在尝试在 MongoDB 中进行条件查找。给定一个包含以下字段的集合:
我想根据是否为 来查找所有项目unconsumed
,具体取决于snooze
应有条件地评估的 expiryT,如下所示:
我使用 KMongo 来查询集合,但使用以下查询
我收到此错误:
com.mongodb.MongoQueryException: Query failed with error code 16020 and error message 'Expression $lt takes exactly 2 arguments. 1 were passed in.' on server localhost:27017
知道查询有什么问题吗?谢谢 :-)
mongodb - 如何使用 Micronaut 和 Kotlin + KMongo 为 MongoDB 配置对象映射?
我在使用 Kotlin 在 Micronaut 中为 MongoDB 配置对象映射时遇到了一些困难。我收到如下错误:
解码为“资产”失败,但出现以下异常:
找不到“资产”的公共构造函数。
可能需要显式配置和注册自定义 Codec 或 PojoCodec 以处理此类型。org.bson.codecs.configuration.CodecConfigurationException:使用 AutomaticPojoCodec 解码时发生异常。解码为“资产”失败,但出现以下异常:
找不到“资产”的公共构造函数。
可能需要显式配置和注册自定义 Codec 或 PojoCodec 以处理此类型。
使用 KMongo,这很容易。但是 Micronaut 注入的 MongoClient 没有 KMongo 的编解码器注册表。
我可以让它工作如下:
此代码直接取自 KMongo。(顺便说一句,使用database.withKMongo()
导致相同的错误)
虽然这可行,但我想让 Micronaut 使用 KMongo 创建客户端,或者让它使用上面的编解码器,使用配置(application.yml)。
codec-registry
这里提到了一个设置: https ://micronaut-projects.github.io/micronaut-mongodb/latest/guide/configurationreference.html ,但我不知道在该设置中输入什么才能使其工作。
任何帮助表示赞赏!
mongodb - Kmongo (Kotlin Server + Mongo) 的 Ktor 服务器配置问题
我将 Ktor 与 KMongo 一起使用。当我在 localhost 中启动服务器并发出简单的“获取”请求时遇到问题。参考资料不是很清楚和完整 - https://litote.org/kmongo/ - 关于服务器上数据库的配置。有谁知道如何解决这个问题?我认为这是一个简单的配置问题,但我不知道如何解决它。我没有使用弹簧。
这是连接到 KmongoDB 的代码:
创建客户端实例时发生错误:
val client = KMongo.createClient().coroutine
这是堆栈错误:
mongodb - KMongo 是否支持枚举?
我有一个 mongo 集合,其中有一个名为role
. 特别是该字段将始终填充以下三个选项之一user
:admin
或guest
。
这就是我决定创建枚举的原因,以便开发人员更容易使用它,同时将字符串值保留在数据库中。
我试图从我的集合中检索一个文档,期望 KMongo 能够从 String 解析到 Enum Role
,反之亦然。
可悲的是,KMongo 似乎无法做到这一点。
当我尝试通过它查找文档时,_id
我收到了以下消息:
2019-05-21 11:39:01 [http-nio-8080-exec-1] 错误 cppcSpringWebConfig$simpleMappingExceptionResolver$resolver$1 - Excepción general resolviendo una petición com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: 实例化 [simple type, class com.foo.user.User] JSON 属性角色的值失败,因为缺少(因此为 NULL)创建者参数角色的值,该角色是 [来源:de.undercouch.bson4jackson.io.LittleEndianInputStream@ 3195529c; pos: 275] (通过引用链: com.foo.user.User["Role"])
所以我的问题是:KMongo 是否支持这些术语中的枚举?
mongodb - 使用 KMongo 严格解析成 POJO
当我find
在我的集合中记录并将它们解析为 POJO 时,我希望看到异常,如果 MongoDB 中有其他可用的键,则与我的 POJO 不对应。找不到配置它的方法。
我所做的
如果结果文档是
我得到什么:
我想看到一个例外
有谁知道这是怎么做到的吗?
kotlin - Mongo 和 Kotlin 的委托问题
我最近一直在使用Kmongo 库和 Kotlin,但是我在 Kmongo 上提出了一个问题,但我不确定它是否与库有关。
我正在尝试将我的数据保存到我的 mongo 数据库(版本 4.2.2)
当我插入数据时,我只发送了一个这样的对象:val person = Person("John", "Doe")
但是当我检查我的 mongo 数据库时
如何防止fullName
保存在我的数据库中?
编辑:
我试图@Transient
在我的变量上使用注释,但它不起作用,并且我收到一条检查消息说:Property does not have backing field which makes it non-serializable and therefore @Transient is redundant
kotlin - Ktor 与 Kmongo 和 kotlinx.serialization
我有一个设置,我将 KTor 与 KMongo 和 Kotlinx.Serialization 一起使用。
Kmongo 部分有效,我可以获取并放置我的类
进入数据库并检索它。这一切都完美无缺。
但是,当我尝试通过休息调用将该对象发送到前端时,再次使用 Kotlinx.Serialization。
它抛出了这个期望:
现在我发现这是因为 kotlin.serialization json 有 2 个实例。并且 KMongo 上的一个不与另一个共享它的序列化程序。
所以我将 KMongo 的序列化程序添加到 Ktor 的另一个实例中
现在我得到了
所以我的问题是它为什么会发生以及如何解决它?
mongodb - KMongo 查询从 Mongo Shell 产生不同的结果
我目前正在使用 KMongo,它非常好。简单易用,语法优美等。
但是我在查询一些我无法弄清楚的数据时遇到了一个问题。我正在过滤某些字段,当我运行我的查询Mongo Shell
或者robo 3T
它工作正常时。然而,当我尝试在我的 Kotlin 应用程序上运行时,它(仅在某些情况下)不起作用。我这样查询:
但我也尝试用接收过滤值的本机查询编写一个字符串,我遇到了同样的问题。一个具体的例子是这个查询:
{ 'role': 'VENDOR', 'name': 'Internal Revenue Service'}
如果我这样运行robo 3T
:
我收到了我期望的结果,但是如果我使用 KMongo 运行完全相同的查询(并且我用调试器检查了两倍),我没有收到任何结果:
当我使用正则表达式进行查询时(如在第一个示例中),它似乎只返回小值:如果我用'Internal Revenue Service'
它查询名称不会产生任何结果,但如果我只'Internal'
用结果查询是正确的。
有谁知道它可能是什么?这似乎非常简单,但我无法弄清楚这让我很生气。
mongodb - MongoDB - 无法调用 ClusterDescription.getConnectionMode(),因为 clusterDescription 为空
我正在尝试使用 Ktor 和 KMongo 实现一个 RESTful api。我连接了一个 mongoDB Atlas 数据库,它运行良好。
然后我准备在 Heroku 上部署第一个版本的 api,现在当我在本地运行它时,对数据库的每个查询都会抛出这个异常:
我以这种方式连接数据库:
我的 Gradle 文件:
这是 ApplicationKt.kt:
这些是路线:
这是我第一次使用 MongoDB,所以这可能是一个愚蠢的错误。但是无法理解问题是在我的代码中还是在 MongoDB Atlas 配置中。