C上的MongoDb$投影查询#

C上的MongoDb$投影查询#,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我需要关于如何从C#驱动程序构建MongoDB查询的帮助。我想做的是在毫秒内做一个datediff,然后过滤那些以毫秒为单位的datediff大于或等于特定数字的结果 我在mongo shell中使用的mongodb查询是: db.getCollection('Coll').aggregate( [ {$project : { "dateInMillis" : {$subtract: [ new Date(), "$UpdateDate" ]},

我需要关于如何从C#驱动程序构建MongoDB查询的帮助。我想做的是在
毫秒内做一个
datediff
,然后过滤那些以毫秒为单位的datediff大于或等于特定数字的结果

我在mongo shell中使用的mongodb查询是:

db.getCollection('Coll').aggregate(
[    
    {$project : {
       "dateInMillis" : {$subtract: [ new Date(), "$UpdateDate" ]},        
       "Param2": "$Param2",
       "Param3": "$Param3"}
    },
    {$match :{ dateInMillis : { $gte : 2662790910}}}
], 
{
    allowDiskUse : true
});
哪一个是等价的C#表达式


我一直在尝试以多种不同的方式进行查询,但没有任何结果。

我终于找到了通过mongodb c#驱动程序进行聚合查询的方法。我不知道这是否是最有效的方法,但它正在发挥作用

var project = new BsonDocument()
{
    {
        "$project",
        new BsonDocument
            {
                {"dateInMillis", new BsonDocument
                                   {
                                       {
                                           "$subtract", new BsonArray() {new  BsonDateTime(DateTime.UtcNow), "$UpdateDate" }
                                       }
                                   }
                },
                {
                    "Param2", "$Param2"
                },
                {
                    "Param3", "$Param3"
                },
                {
                    "_id", 0
                }
            }
    }
};
var match = new BsonDocument()
{
    {
        "$match",
        new BsonDocument
            {
                {
                    "dateInMillis",
                    new BsonDocument {
                        {
                            "$gte",
                            intervalInMilliseconds
                        }
                     }
                }

            }
    }
};

var collection = db.GetCollection<CollClass>("Coll");

var pipeline = new[] { project, match };
var resultPipe = collection.Aggregate<CollClassRS>(pipeline);
var项目=新的BsonDocument()
{
{
“$project”,
新的B文件
{
{“dateInMillis”,新的B文件
{
{
“$subtract”,new BsonArray(){new BsonDateTime(DateTime.UtcNow),“$UpdateDate”}
}
}
},
{
“Param2”、“$Param2”
},
{
“Param3”、“$Param3”
},
{
“_id”,0
}
}
}
};
var match=新的BsonDocument()
{
{
“$match”,
新的B文件
{
{
“dateInMillis”,
新的B文件{
{
“$gte”,
间隔百万秒
}
}
}
}
}
};
var collection=db.GetCollection(“Coll”);
var pipeline=new[]{project,match};
var resultPipe=collection.Aggregate(管道);
mongo c#驱动程序版本为:…mongo c#驱动程序版本为:2.2.4