【发布时间】:2016-06-17 09:03:04
【问题描述】:
我有一个 MongoDB 集合,我需要使用 C# MongoDB 查询选择每个员工 (Emp_ID) 的最后 3 个文档(按 LastUpdate 降序排列)。
样本集:
{
"_id" : ObjectId("575f4e2efd14481598fc0ebf"),
"Emp_ID" : "100",
"LastUpdate" : ISODate("2016-06-13T18:30:00.000Z")
},
{
"_id" : ObjectId("575f4e2efd14481598fc0ec0"),
"Emp_ID" : "101",
"LastUpdate" : ISODate("2016-06-14T06:33:12.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec1"),
"Emp_ID" : "101",
"LastUpdate" : ISODate("2016-06-14T06:33:16.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec2"),
"Emp_ID" : "102",
"LastUpdate" : ISODate("2016-06-14T06:33:18.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec3"),
"Emp_ID" : "100",
"LastUpdate" : ISODate("2016-06-14T06:33:26.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec3"),
"Emp_ID" : "102",
"LastUpdate" : ISODate("2016-06-14T06:33:29.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec4"),
"Emp_ID" : "101",
"LastUpdate" : ISODate("2016-06-14T06:34:18.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec5"),
"Emp_ID" : "102",
"LastUpdate" : ISODate("2016-06-14T06:34:20.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec6"),
"Emp_ID" : "100",
"LastUpdate" : ISODate("2016-06-14T06:34:31.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec7"),
"Emp_ID" : "102",
"LastUpdate" : ISODate("2016-06-14T06:34:35.000Z")
}
,
{
"_id" : ObjectId("575f4e2efd14481598fc0ec8"),
"Emp_ID" : "101",
"LastUpdate" : ISODate("2016-06-14T06:34:38.000Z")
}
我知道选择一个员工信息
实验查询:
var collection = _database.GetCollection<Employee>("EmpInfo");
var filterBuilder = Builders<Employee>.Filter;
var filter = filterBuilder.Eq("Emp_ID", "100");
var Item = collection.Find(filter)
.Sort(Builders<Employee>.Sort.Descending("LastUpdate"))
.Limit(3).ToList();
请帮助我,如何使用 C# MongoDB Query 从上述集合中选择每个员工的最后 3 条记录(我更喜欢单个查询执行)。
【问题讨论】:
-
你试过聚合吗?这就是所有员工都需要的
标签: c# mongodb mongodb-query mongodb-.net-driver