Поиск агрегации драйвера Mongo-Scala с конвейером
Я хочу реализовать агрегацию с использованием новой функции поиска с использованием конвейера с драйвером mongo-scala-версии 2.30.
Этап агрегации MongoQuery, который я пытаюсь реализовать:
$lookup: {
from: "user",
let: { recipeId: "$_id" },
pipeline:[
{ $match:
{ $expr:
{ $in: ["$$recipeId", "$licenses.recipe"] }
}
}
],
as: "users"
}
Мой текущий рабочий этап:
val let = Seq(Variable("recipeId", "$_id"))
val theMatch = Document.apply("""{$match:{$expr:{ $in: ["$$recipeId", "$licenses.recipe"] }}}""").toBsonDocument
val pipeline = Seq(theMatch)
val theLookup = lookup("user", let, pipeline, "users")
val aggr = Seq(
...,
theLookup)
Хотя это работает, я уверен, что есть лучший способ использовать поставляемую библиотеку драйверов и лучше реализовать метод грубой силы Document.apply, который я использовал, например, для Match.
Предложения приветствуются.