Поиск по ключевому слову в агрегате mongodb в конвейере без использования $ unwind - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть коллекция документов, каждый из которых имеет два вложенных документа с использованием конвейера с $ lookup, и мне нужно найти ключевое слово с двумя полями в первом вложенном документе (у него также есть вложенные документы), а также выполнить поиск по одному имени поля в второй поддокумент Если какое-либо ключевое слово соответствует, документ должен быть возвращен. Мне нужно обойтись без $ раскрутки. Пожалуйста, помогите

Например,

db.maincollection. aggregate([
  { $lookup : {
    from : "collection1", 
    let : { "foreignkey" : "$_id"}, 
    pipeline : [{
        $match : { $expr : { $eq : ["key", "$$foreignkey]}}}], 
    as : "subdocument1"

}}, {$ lookup: {from: "collection2", let: {"foreignkey": "$ _anotherfield"}, конвейер: [ {$ match: {$ expr: {$ eq: ["key", "$$ foreignkey]}}}] as:" subdocument2 "])}}

subdocument1 содержит два поля, например title и comment. Subdocument2 содержит first_name и last_name. Регулярное выражение должно применяться к этим полям. Основной документ должен быть возвращен, если любой из них соответствует ключевому слову.

...