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();