MongoDb C# 操作鍵值為Array物件的方法
阿新 • 來源:網路 • 發佈:2021-01-21
假如有一個班級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}條";
其它類似操作仿照寫即可
