csharp 一个简单的C#示例,用于演示与MongoDB聚合结果交互的多态抽象类。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 一个简单的C#示例,用于演示与MongoDB聚合结果交互的多态抽象类。相关的知识,希望对你有一定的参考价值。

using System;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Bson.Serialization.Attributes;

public abstract class MongoModelBase
{
  [BsonId]
  public ObjectId Id { get; set; }
}

[BsonDiscriminator(Required = true, RootClass = true)]
[BsonKnownTypes(typeof(OrganizationActivityLog), typeof(ShipmentActivityLog))]
public abstract class ActivityLogBase : MongoModelBase
{
  public string ActivityDescription { get; set; }
}

public class ShipmentActivityLog : ActivityLogBase
{
  public string shipmentId { get; set; }
}

public class OrganizationActivityLog : ActivityLogBase
{
  public int OrganizationId { get; set; }
}

class Program
{
  static void Main(string[] args)
  {
    var client = new MongoClient("mongodb://localhost:27017");
    var database = client.GetDatabase("test");
    var collection = database.GetCollection<ActivityLogBase>("activitylogs");
    var filterBuilder = Builders<OrganizationActivityLog>.Filter;
    
    var result = collection.Aggregate()
              .OfType<OrganizationActivityLog>()
              .Group(
                  e => e.OrganizationId,
                  e => new {
                    ActivityLog = e.Select(f => new OrganizationActivityLog
                    {
                      Id = f.Id,
                      OrganizationId = f.OrganizationId,
                      ActivityDescription = f.ActivityDescription
                    }).First()
                  }
              ).ToList();
            Console.WriteLine(result);
  }
}

以上是关于csharp 一个简单的C#示例,用于演示与MongoDB聚合结果交互的多态抽象类。的主要内容,如果未能解决你的问题,请参考以下文章

csharp 用于找到斐波纳契数列的迭代解的示例。从计算机编程基础与C#http://www.introprogr

csharp 用于找到斐波纳契数列的迭代解的示例。从计算机编程基础与C#http://www.introprogr

csharp 示例演示如何使用for循环以相反顺序迭代数组。从计算机编程基础知识到C#http:/

csharp 示例演示如何使用for循环以相反顺序迭代数组。从计算机编程基础知识到C#http:/

csharp 演示如何自定义ItemInfo架构元素内容的示例代码

csharp 示例Topshelf服务,演示如何使用Fooidity Switchyard切换功能