c# - 字段的 MongoDB C# 驱动程序投影

标签 c# mongodb database nosql

嗨,我在 mongoDB 中有一个集合,我只想从中获取部分字段,我创建了一个类,用于向 Mongo 插入数据

类代码:

public class  FrameDocument
{

    public ObjectId _id { get; set; }
    public Nullable<System.DateTime> FrameTimeStamp { get; set; }
    public Nullable<int> ActivePick { get; set; }
    public Nullable<int> TraderId { get; set; }
    public Nullable<int> EventCodeId { get; set; }
    public byte[] Frame { get; set; }
    public int ServerUserId { get; set; }
    public int SesionId { get; set; }
    public string TraderName { get; set; }
    public string ServerUserName { get; set; }


}

这是插入代码:

               FrameDocument frameDoc = new FrameDocument();

            frameDoc.Frame = imageBA;
            frameDoc.EventCodeId = 1;
            frameDoc.SesionId = 1;
            frameDoc.FrameTimeStamp = DateTime.Now;
            frameDoc.ServerUserId = (int)toMongoDt.Rows[0]["ServerUserId"];
            frameDoc.TraderId = (int)toMongoDt.Rows[0]["TraderId"];
            frameDoc.ActivePick = (int)toMongoDt.Rows[0]["ActivePick"];
            frameDoc.TraderName = (string)toMongoDt.Rows[0]["TraderName"];
            frameDoc.ServerUserName = (string)toMongoDt.Rows[0]   ["ServerUserName"];
            var mongoCon = "mongodb://127.0.0.1";
            MongoClient client = new MongoClient(mongoCon);
            var db = client.GetDatabase("Video");

            var frameCollection = db.GetCollection<FrameDocument>("Frame");
            frameCollection.InsertOne(frameDoc);

**现在我用这段代码得到了集合中的所有字段,但是我想把 Frame 字段排除在类之外,我试图在没有这个字段的情况下构建不同的类,但我不知道如何不这样做接收帧字段**

                var collection = db.GetCollection<BsonDocument>("Frame");
            var builder = Builders<BsonDocument>.Filter;
            var filter = builder.Eq("SesionId", 1)
                & builder.Eq("TraderId", 125)
                 & builder.Eq("ServerUserId", 1)
                & builder.Lt("FrameTimeStamp", sing.eDate)
                & builder.Gt("FrameTimeStamp", sing.sDate);

            var result = collection.Find(filter).ToList();

有人可以帮忙吗?

最佳答案

请看这个:

   _result = _collection.Find(o => o._id == _id)
            .Project<FrameDocumentNoFrameField>  
          (Builders<FrameDocument>.Projection.Exclude(f => f.Frame)).ToList();

其中 FrameDocumentNoFrameField 是一个没有 Frame 字段的类

source here

关于c# - 字段的 MongoDB C# 驱动程序投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38893114/

相关文章:

c# - 为什么 Assert.AreEqual<T> 因相同的对象而失败?

c# - 如何从 ReadOnlySpan<T> 复制到 Array<T>?

c# MongoDB 驱动程序 : FindOneAndUpdate how to know if it has found a document?

database - 扫描大型 DynamoDB 表 - 大小为 1.5TB,包含 100 亿条记录

c# - 跨部分类的 "textual order"是否正式定义?

c# - 初始化 USB 调制解调器的 COM 端口

ruby-on-rails - Mongodb:在 Web URL 上创建唯一索引是个好主意吗?

mongodb - Docker:连接到容器(不暴露端口)

database - 数据库中的可恢复性和级联调度

c# - WPF - 将数据库记录显示到列表中