Spring中使用 IoC 建立物件
阿新 • • 發佈:2021-01-18
假如有一個班級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)); var queryFindElement = database.GetCollection<SchoolClass>("schoolclass").FindAsync(filterUpdateDefinition, findOptions).Result.FirstOrDefault();
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}條";
其它類似操作仿照寫即可