首页 > 解决方案 > 查找 MongoDb 文档中数组中第一个位置的所有不同值

问题描述

在我的论文集中的文档中有一个数组字段。它们看起来像这种格式:

    "citation" : [ 
         "Communications Physics", 
         " 2", 
         "98", 
         "2019"
        ]

我正在尝试查询所有集合并获取此数组中位置 0 的不同值。在这种情况下是“通信物理学”。

db.papers.distinct('citation') 不能解决我的问题,因为我只想要第一个元素的不同值。

我尝试了不同的聚合公式,但是我无法解决错误的标记或不正确的语法。

标签: arraysmongodb

解决方案


如果你想使用aggregate

db.papers.aggregate([
    {$project : {"FirstElement" : { $arrayElemAt: [ "$citation", 0 ] }}}, // Take out the first element from citation array
    {$group : {_id : "$FirstElement"}} // Group By The element you took out
]);

如果你想使用distinct尝试包括索引"citation.0"

db.papers.distinct("citation.0");

推荐阅读