尝试在MongoDB上查询所有“名称”时出现问题?

时间:2019-01-21 06:36:17

标签: database mongodb

我正在尝试查找收藏夹中的所有“名称”,但我不知道该怎么做。

例如,我尝试了很多不同的查询-

  

db.collectionname.find({“ customers”:{“ id”:1,“ name”:1}}

似乎没有任何作用。

以下是收藏中的相关部分:

{
    "id" : 1,
    "customers" : {
            "id" : 1,
            "name" : "ronald"
    }
}

我收藏的其余部分基本上是相同的。我只需要获取所有名称的列表,例如在这种情况下的ronald。我不知道如何,将不胜感激!预先感谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您将需要使用聚合。 您需要对customer.name进行分组,并将每个名称放入一个数组中。

请参考此处:https://docs.mongodb.com/manual/reference/operator/aggregation/push/

或者如果仅需要唯一名称,请使用addToSet而不是push。

尝试一下:

  

db.collectionname.aggregate([{   $ group:{         _id:null,         名称:{           $ push:“ $ customers.name”         }       }      }     ])。pretty()

这将为您提供一个数组“名称”,其中所有名称都堆叠在一起。