Arrays 删除被删除文档中的数组元素

Arrays 删除被删除文档中的数组元素,arrays,mongodb,mongodb-query,mongodb-.net-driver,Arrays,Mongodb,Mongodb Query,Mongodb .net Driver,在MongoDB中,我有一个具有以下结构的文档集合: { "_id" : 18, "name" : "Verdell Sowinski", "scores" : [ { "type" : "exam", "score" : 62.12870233109035 },

在MongoDB中,我有一个具有以下结构的文档集合:

{
        "_id" : 18,
        "name" : "Verdell Sowinski",
        "scores" : [
                {
                        "type" : "exam",
                        "score" : 62.12870233109035
                },
                {
                        "type" : "quiz",
                        "score" : 84.74586220889356
                },
                {
                        "type" : "homework",
                        "score" : 81.58947824932574
                },
                {
                        "type" : "homework",
                        "score" : 69.09840625499065
                }
        ]
}
我正在使用.NET。我需要删除分数最低的分数数组元素。所有有分数的文档的分数。type=“家庭作业”

在本例中,将是分数数组的第4个元素(“分数”:69.09840625499065)

我建议我必须按Id分组,排序限制为1,然后使用方法删除多个,但我无法使代码正常工作

我解决不了这个问题。下一个代码是我正在尝试但不起作用的代码:

var db = client.GetDatabase("school");
        var col = db.GetCollection<Student>("students");
        var filter = new BsonDocument("scores.type", "homework");
        var myresult = await col
                //.Find(filter)
                .Aggregate()
                .Unwind(x => x.Scores)
                .Group(new BsonDocument { { "_id", "$_id" }, 
                   { "minimo", new BsonDocument("$min", "$Scores.score") } })
                .Sort(new BsonDocument("minimo", -1))
                .Limit(1)
                .ToListAsync();
var db=client.GetDatabase(“学校”); var col=db.GetCollection(“学生”); var filter=新的BsonDocument(“scores.type”、“家庭作业”); var myresult=wait col //.查找(筛选器) .Aggregate() .放松(x=>x.分数) .Group(新的BsonDocument{{{{u id',“$\u id}), {“minimo”,新的BsonDocument(“$min”,“$Scores.score”)}) .Sort(新的BsonDocument(“minimo”,-1)) .限额(1) .ToListAsync(); 我的班级:

 public class Student
    {
        public int _id { get; set; }
        public string Name { get; set; }

        public List<Score>  Scores { get; set; }
    }

    public class Score
    {
        public string Type { get; set; }
        public double Mark { get; set; }
    }
公共班级学生
{
公共int_id{get;set;}
公共字符串名称{get;set;}
公共列表分数{get;set;}
}
公开课成绩
{
公共字符串类型{get;set;}
公共双标记{get;set;}
}

您能展示您迄今为止的尝试吗?这基本上就是您需要的:MongoDB大学问题?是的,这是一个MongoDB大学问题MongoDB&.NET。我将尝试最后一个建议。我认为删除数组元素是必要的,使用$pull代替$push。我修改了我的答案,添加了一段代码(错误的代码,我无法让它工作)。有什么想法吗?