Я хочу реализовать агрегацию с использованием новой функции поиска с использованием конвейера с драйвером mongo-scala версии 2.30.
Стадия агрегации MongoQuery, которую я пытаюсь реализовать:
$lookup: {
from: "user",
let: { recipeId: "$_id" },
pipeline:[
{ $match:
{ $expr:
{ $in: ["$$recipeId", "$licenses.recipe"] }
}
}
],
as: "users"
}
Myтекущий рабочий этап:
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, который я использовал, например, для theMatch .
Предложения приветствуются.