#mongodb #scala
#mongodb #scala
Вопрос:
collection.find({foo: { $gt: "A", $lt: "Z"}});
Как мне записать это в Filters DSL в драйвере MongoDB Scala?
Я знаю, что могу написать
and(gt("foo", "A"), lt("foo", "Z"))
но это эквивалентно
collection.find({$and([{foo: {$gt: "A"}}, {foo: {$lt: "Z"}}])});
Что кажется мне гораздо менее элегантным.
Комментарии:
1. Вы можете назвать это менее элегантным, но так оно и есть 🙂
Ответ №1:
Драйвер объединит значения предложения фильтра в вашем случае
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"}}