0

我正在尝试“翻译”来自 MySQL 的查询,

SELECT a.Nome, a.PosicaoPrimaria, a.PosicaoSecundaria 
FROM Atleta AS a INNER JOIN Equipa AS e ON a.Equipa_idEquipa = e.idEquipa
WHERE e.Localidade = 'Braga' AND a.PosicaoSecundaria != ''
ORDER BY a.PosicaoSecundaria;

到 MongoDB 查询。到目前为止,一切都很好。我已经搜索并尝试了解我如何能够做我想做的事,但我已经停下来了。

到目前为止,这就是我作为 MongoDB 查询所拥有的,

db.Atleta.aggregate([ 
 {$lookup: 
  {from:"Equipa", 
   let: {e:"$Equipa_idEquipa", ps:"$PosicaoSecundaria"}, 
    pipeline:[ 
     {$match: 
      {$expr: 
       {$and: [ {$eq:["$idEquipa", "$$e"]}, 
                {$ne:[null, "$$ps"]}, 
                {$eq:["$Localidade", "Braga"]} ] } } }], 
        as:"Query" }},
         {$project:{Query:1, Nome:1, PosicaoPrimaria:1, PosicaoSecundaria:1, _id:0}} ]).pretty()

这为我提供了我想要返回的玩家的结果,但它也返回了所有其他玩家,他们在查询中“不符合要求”。见下图。

查询结果

我真正需要的是过滤结果以仅显示具有“查询”数组的玩家不为空。有没有办法可以做到?

4

0 回答 0