mongodb - foo: { $gt: "A", $lt: "Z"}; 我如何在 scala 驱动程序中写这个?
问题描述
collection.find({foo: { $gt: "A", $lt: "Z"}});
如何在MongoDB Scala 驱动程序的过滤器DSL 中编写这个?
我知道我会写
and(gt("foo", "A"), lt("foo", "Z"))
但这相当于
collection.find({$and([{foo: {$gt: "A"}}, {foo: {$lt: "Z"}}])});
这对我来说似乎不那么优雅。
解决方案
驱动程序将在您的情况下合并过滤子句值
import org.mongodb.scala.bson.{BsonDocument, codecs}
import org.mongodb.scala.model.Filters._
object Try extends App {
var f = and(gt("foo", "A"), lt("foo", "Z"))
println(f.toBsonDocument(classOf[BsonDocument], codecs.DEFAULT_CODEC_REGISTRY))
}
// output
// {"foo": {"$gt": "A", "$lt": "Z"}}
推荐阅读
- c# - 当我们使用 OpenXMLPowerTools 创建单个幻灯片的演示文稿时图标丢失
- javascript - Java 脚本 - 导出和导入
- java - 将字符映射到国际键集的键码
- .net - AWS Lambda 上带有 netcoreapp2.0 的 Npgsql 无法连接(有超时) - 我该如何解决?
- php - PHP 的可变长度参数 `...` 标记应该被称为什么?
- java - Dialgfow V2:使用java生成访问令牌
- svn - VisualSVN 服务器:是否可以不继承权限?
- python - Python - 重新索引每月值
- python - Enthought Canopy 不同步 Python 脚本
- macros - 使用自定义联系人字段的 Kentico 电子邮件小部件