MongoDB获取具有最大计数的文档

本文关键字:文档 获取 MongoDB | 更新日期: 2023-09-27 18:34:57

我有一个集合,以以下格式存储文档:

"_id" : ObjectId("56c48ffa6a650517eccd147b"),
"Token" : "diamond",
"sentence_id" : ObjectId("5665627c6a650522082d5209")

字段标记中有重复值

"_id" : ObjectId("56c48ffa6a650517eccd147c"),
"Token" : "diamond",
"sentence_id" : ObjectId("5665627c6a650522082d5230")

我需要获得计数值较高的前十个代币。我需要用 C# 编写此查询。谁能帮忙??

MongoDB获取具有最大计数的文档

您可以利用 C#:聚合按字段执行分组Token并按Token出现的计数进行排序。

例如,要在 C# 中执行此操作:

var aggregate = collection.Aggregate()
                          // Group by Token, and count occurrences
                          .Group(new BsonDocument { 
                                         { "_id", "$Token" }, 
                                         { "count", new BsonDocument("$sum", 1) } })
                          // Sort by count number
                          .Sort(new BsonDocument { { "count", -1 } })
                          // Limit only top ten
                          .Limit(10);
        var results = await aggregate.ToListAsync();
        foreach (var obj in results)
        {
            Console.WriteLine(obj.ToString());
        }

请参阅要点:代码的简单聚合。代码是用.Net v4.5.2和mongocsharpdriver-2.2.3编写的。

另请查看MongoDB聚合及其可用运算符列表以获取更多信息。您可能还对$out运算符感兴趣,以便将聚合的输出存储在集合中以供以后使用。

希望有帮助。