среда: пн go 4.2.2. вызывая из Compass 1.20.5
я сделал $unwind
2 элемента массива (одного документа) в 2 отдельных документа:
{
{ id: 1 },
{ termTrg: { lang: "ara"} },
{ sublangTrans: { lang: "apj"} }
}
и
{
{ id: 1 },
{ termTrg: { lang: "ara"} },
{ sublangTrans: { lang: "ara"} }
}
Перед тем как я $group
снова отправлю их по идентификатору 1 в один документ, я sh отфильтрую по $match
документам, в которых атрибуты lang в документе совпадают. Предоставляя строку ara
статически, удаляет второй документ, как предполагалось.
$match { 'sublangTrans.lang' : { $ne: 'ara' } }
Если я пытаюсь заменить ara
значением узла termTrg.lang
, он не удаляет какие-либо документы.
$match { 'sublangTrans.lang' : { $ne: 'termTrg.lang' } }
Почему значение termTrg.lang
не разрешено? Какой правильный синтаксис? Есть ли альтернативный способ фильтрации документов?