MongoDb C# 操作键值为Array对象的方法

假如有一个班级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}条";

其它类似操作仿照写即可

  

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结