C# MongoDB C聚合计数
我希望使用C驱动程序v2.7.0对集合进行聚合,然后计算结果 假设我有一个iMongocol集合,我会这样做:C# MongoDB C聚合计数,c#,mongodb,C#,Mongodb,我希望使用C驱动程序v2.7.0对集合进行聚合,然后计算结果 假设我有一个iMongocol集合,我会这样做: IAsyncCursor<BsonDocument> cursor = col.Aggregate() .Match(someFilterDefinition) .Project(someProjectionDefinition) .Unwind("someFieldName") .ToCursor(); while (cursor.Move
IAsyncCursor<BsonDocument> cursor = col.Aggregate()
.Match(someFilterDefinition)
.Project(someProjectionDefinition)
.Unwind("someFieldName")
.ToCursor();
while (cursor.MoveNext())
{
foreach (BsonDocument doc in cursor.Current)
{
doStuff(doc);
}
}
您将获得一个带有单个计数字段的文档或无文档,该字段的int64值为前一阶段的元素数
有一个函数。但是,它返回一个IAggregateFluent
我想要一个AggregateCountResult,或者只是一个简单的无符号long
如何使用Aggregate.Count函数?不只是添加Count,这会让您进入一个聚合阶段,您必须使用.ToCursor或.FirstOrDefault或类似工具完成聚合。 FirstOrDefault返回AggregateCountResult,它具有Count属性
ulong count = col.Aggregate()
.Match(someFilterDefinition)
.Project(someProjectionDefinition)
.Unwind("someFieldName")
.Count()
.FirstOrDefault() // returns AggregateCountResult
.Count(); // returns ulong
不只是追加Count,这将为您提供一个聚合阶段,您必须使用.ToCursor或.FirstOrDefault或类似工具完成聚合。 FirstOrDefault返回AggregateCountResult,它具有Count属性
ulong count = col.Aggregate()
.Match(someFilterDefinition)
.Project(someProjectionDefinition)
.Unwind("someFieldName")
.Count()
.FirstOrDefault() // returns AggregateCountResult
.Count(); // returns ulong
应该是.FirstOrDefault.Count;没有括号。在当前版本2.9.1中,它还返回一个long而不是ulong。请注意:当没有要计数的条目时,count将不返回任何元素。因此.FirstOrDefault为null,.Count将引发NullReferenceException。它应该是.FirstOrDefault.Count;没有括号。在当前版本2.9.1中,它还返回一个long而不是ulong。请注意:当没有要计数的条目时,count将不返回任何元素。因此.FirstOrDefault为null,.Count将引发NullReferenceException。