嗨,我在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字段留在类之外,我试图在没有这个字段的情况下构建不同的类,但是我不知道如何不接收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#Driver Projection的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38893114/

10-15 07:14
查看更多