Mongodb 使用 C# 嵌套数组限制和排序
Mongodb Nested array limt and sort using C#
嗨,我是 mongodb 的新手。我有一个这样的文档
{
"_id" : "58e46f81c4734559ac8082f0",
"Name" : "test",
"Students" : [
{
"Name" : "A",
"Marks" : "3"
}
]
}
我想使用 c# mongodb Drivers
对学生数组和 sortBy 标记应用限制
请提出任何执行此操作的方法。
提前致谢
使用 AsQueryable
collection.AsQueryable().Where(predict).SelectMany(Property).OrderByDescending().Take(number)
现在使用它我可以创建 mongodb 查询。它对我有用。我得到了要求的结果
这使用 MongoDB.Driver 版本 2.4:
var context = new Context();
var builder = Builders<Thing>.Filter;
var filter = builder.Eq(x => x.Name, "test"); // Or by Id, etc.
var result = context.ThingCollection.Find(filter).SingleOrDefault();
var students = result.Students.OrderByDescending(x => x.Marks).Take(limit).ToList();
students
变量是按分数排序的有限数量的学生列表。
更新
这也有效:
var result = context.ThingCollection.Find(filter).Project(x => x.Students.Select(y => y).OrderByDescending(z => z.Marks).Take(3)).ToList();
嗨,我是 mongodb 的新手。我有一个这样的文档
{
"_id" : "58e46f81c4734559ac8082f0",
"Name" : "test",
"Students" : [
{
"Name" : "A",
"Marks" : "3"
}
]
}
我想使用 c# mongodb Drivers
对学生数组和 sortBy 标记应用限制请提出任何执行此操作的方法。
提前致谢
使用 AsQueryable
collection.AsQueryable().Where(predict).SelectMany(Property).OrderByDescending().Take(number)
现在使用它我可以创建 mongodb 查询。它对我有用。我得到了要求的结果
这使用 MongoDB.Driver 版本 2.4:
var context = new Context();
var builder = Builders<Thing>.Filter;
var filter = builder.Eq(x => x.Name, "test"); // Or by Id, etc.
var result = context.ThingCollection.Find(filter).SingleOrDefault();
var students = result.Students.OrderByDescending(x => x.Marks).Take(limit).ToList();
students
变量是按分数排序的有限数量的学生列表。
更新
这也有效:
var result = context.ThingCollection.Find(filter).Project(x => x.Students.Select(y => y).OrderByDescending(z => z.Marks).Take(3)).ToList();