首页 > 解决方案 > Scala MongoDb 客户端:从查询字符串到构建器

问题描述

在 monogodb scala 客户端(referenceapi)中,我们需要使用Builder组件构建查询。例如过滤器:

import org.mongodb.scala.model.Filters._

val q = and(gt("qty", 20), equal("user", "jdoe"))
collection.find(q)

上面的示例选择了所有 qty 字段的值大于 20 并且 user 字段的值等于“jdoe”的文档。

我想知道是否有可能直接使用字符串渲染版本而不使用构建器。

collection.find("{'qty' : { '$gt' : 20 }, 'user' : 'jdoe'}")

我正在寻找这种适应,以简化与将以字符串格式提供查询的外部服务的交互。而且我也相信用户以与他/她在 mongo shell 中相同的方式编写查询将是最简单的。

标签: mongodbscalamongodb-query

解决方案


感谢Thilo的评论,解决方案如下:

val queryAsString = "{'qty' : { '$gt' : 20 }, 'user' : 'jdoe'}"
collection.find(BsonDocument(queryAsString))

推荐阅读