我需要关于如何从MongoDB驱动程序构建C#查询的帮助。我要做的是在milliseconds
中创建一个milliseconds
,然后过滤那些以毫秒为单位的datediff为greater or equal than an specific number
的结果。
我在mongo中使用的mongodb查询是:
db.getCollection('Coll').aggregate(
[
{$project : {
"dateInMillis" : {$subtract: [ new Date(), "$UpdateDate" ]},
"Param2": "$Param2",
"Param3": "$Param3"}
},
{$match :{ dateInMillis : { $gte : 2662790910}}}
],
{
allowDiskUse : true
});
哪个是等价的C#表达式?
我一直试图以许多不同的方式进行查询,但没有任何结果。
发布于 2016-06-03 15:06:46
我终于找到了通过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);
https://stackoverflow.com/questions/37612994
复制相似问题