Поиск агрегации драйвера 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.

Предложения приветствуются.

0 ответов

Другие вопросы по тегам