【发布时间】:2021-05-22 14:44:55
【问题描述】:
亲爱的开发者们,你好,
我在使用 MongoDB C# 驱动程序时遇到问题并寻求帮助。
我正在尝试按 machineCode 列对记录进行分组,并从每列中获取 5 条记录。并且还尝试按 insertDate 降序对所有记录进行排序。
到目前为止,我已经尝试了 SO 的几个线程,但在所有尝试中都失败了。
var list = d3TestCollection
.AsQueryable<D3TestData>()
.OrderByDescending(q => q.InsertDate)
.GroupBy(f => f.machinecode)
.Select(f => new D3MachineListResult {
MachineCode = f.Key,
Values = f.Select(q => new D3KeyValueMap { Key = q.Key, Value = q.Value })
.Take(5)
.ToList()
}).ToList();
由于 Take(5),此代码抛出 Method Not Supported 错误。
谢谢大家。
示例集合:
{
"_id" : ObjectId("60a607be339f7c44c0d43b70"),
"key" : "KEY1",
"machinecode" : "3DTEST1",
"value" : false,
"insertDate" : ISODate("2021-05-20T06:54:54.941Z")
},
{
"_id" : ObjectId("60a607be339f7c44c0d43b70"),
"key" : "KEY1",
"machinecode" : "3DTEST2",
"value" : false,
"insertDate" : ISODate("2021-05-20T06:54:54.941Z")
},
{
"_id" : ObjectId("60a607be339f7c44c0d43b70"),
"key" : "KEY2",
"machinecode" : "3DTEST3",
"value" : false,
"insertDate" : ISODate("2021-05-20T06:54:54.941Z")
},
{
"_id" : ObjectId("60a607be339f7c44c0d43b70"),
"key" : "KEY2",
"machinecode" : "3DTEST4",
"value" : false,
"insertDate" : ISODate("2021-05-20T06:54:54.941Z")
}
【问题讨论】:
-
尝试在
GroupBy阶段内积累文件
标签: c# mongodb aggregation-framework mongodb-.net-driver