Mongodb graphLookup cond в connectToField

#mongodb #graphlookup

#mongodb #graphlookup

Вопрос:

Его возможное добавление $cond в $connectToField пример

{ $graphLookup: { from: ‘samecollection’, startWith: ‘$myid’, connectFromField: ‘myid’, connectToField: { $cond: { true, ‘myidsRelated.id ‘, ‘newRelated.id ‘} }, как: ‘элементы’, }, },

Ответ №1:

Нет, это невозможно. connectToField Параметр позволяет указать только имя поля, к которому нужно присоединиться. Он не поддерживает выражения (и именно по этой причине имя поля указано без $ префикса).

Однако есть restrictSearchWithMatch опция, которую вы можете использовать для фильтрации документов, которые вы хотите использовать для участия в поиске. Например:

 {
  $graphLookup: {
    from: "somecollection",
    startWith: "$myid",
    connectFromField: "myid",
    connectToField: "newRelated.id",
    as: "elements",
    restrictSearchWithMatch: { "newRelated.id": { $exists: true } }
  }
}