zoukankan      html  css  js  c++  java
  • MongoDb C# 操作键值为Array对象的方法-8

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

    4、删除Array中某个学生的方法

    比如:删除生日为2010-10-1学生

    UpdateDefinitionBuilder<BsonDocument> updateDefinitionBuilder = new UpdateDefinitionBuilder<BsonDocument>();
    var updateDefinition = updateDefinitionBuilder.Pull(fieldDefinition, new BsonDocument { { "Birthday",Convert.ToDateTime("2010-10-1")} }); 
    var result2 = MongoDBHelper.GetYeWuCollection<BsonDocument>("schoolclass").UpdateOne(filterUpdateDefinition, updateDefinition); 
    string info2 = $"匹配到:{result2.ModifiedCount}条,更新:{result2.ModifiedCount}条"; 

    其它类似操作仿照写即可

      

    1、建了一个小群:616945527(软件), 欢迎大家加入,加群口令abc123,硬件嵌入式开发者推荐75764412(单片机)。
    闲置域名www.nsxz.com出售(等宽等高字符四字域名,可组合多种有意义词语)。
  • 相关阅读:
    ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
    reportlab设置字体
    Ansible 配置文件详解
    Ansible 配置文件详解
    如何在 FineUIMvc 中引用第三方 JavaScript 库
    如何在 FineUIMvc 中引用第三方 JavaScript 库
    如何在 FineUIMvc 中引用第三方 JavaScript 库
    如何在 FineUIMvc 中引用第三方 JavaScript 库
    div和span显示在同一行
    div和span显示在同一行
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/14308044.html
Copyright © 2011-2022 走看看