#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 } }
}
}