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# 编写此查询。谁能帮忙??
您可以利用 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运算符感兴趣,以便将聚合的输出存储在集合中以供以后使用。
希望有帮助。