假如有一个班级Collection(Grade,Array Student),班级下有学生Student(Birthday,Sex,Name)
1、先定义一个fieldDeFinition和updateDeFinition
FieldDeFinition<BsonDocument> fieldDeFinition = "StudentList"; FilterDeFinitionBuilder<BsonDocument> filterDeFinitionZiBuilder = new FilterDeFinitionBuilder<BsonDocument>(); FilterDeFinition<BsonDocument> filterZi = filterDeFinitionZiBuilder.And( filterDeFinitionZiBuilder.Eq("Birthday", Convert.ToDateTime("2010-10-1")), filterDeFinitionZiBuilder.Eq("Sex", "male") ); FilterDeFinition<BsonDocument> filterDeFinition = filterDeFinitionBuilder.And( filterDeFinitionBuilder.Eq("Grade", 3), filterDeFinitionBuilder.Elemmatch(fieldDeFinition, filterZi));
2、插入一个学生方法如下(这里构建的filterDeFinition不需要Elemmatch那句话)
UpdateDeFinitionBuilder<BsonDocument> updateDeFinitionBuilder = new UpdateDeFinitionBuilder<BsonDocument>(); var updateDeFinition = updateDeFinitionBuilder.AddToSet(fieldDeFinition, item); var result2 =database.GetCollection<SchoolClass>("schoolclass").UpdateOne(filterDeFinition, updateDeFinition); string info2 = $"匹配到:{result2.ModifiedCount}条,更新:{result2.ModifiedCount}条";
3、更新学生生日方法
UpdateDeFinitionBuilder<BsonDocument> updateDeFinitionBuilder = new UpdateDeFinitionBuilder<BsonDocument>(); var updateDeFinition = updateDeFinitionBuilder.Set("StudentList.$.Birthday", dateBirthday); var result2 =database.GetCollection<SchoolClass>("schoolclass").UpdateOne(filterUpdateDeFinition, updateDeFinition); string info2 = $"匹配到:{result2.ModifiedCount}条,更新:{result2.ModifiedCount}条";
其它类似操作仿照写即可
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。