首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于MongoDb $projection的C#查询

基于MongoDb $projection的C#查询
EN

Stack Overflow用户
提问于 2016-06-03 11:18:29
回答 1查看 432关注 0票数 1

我需要关于如何从MongoDB驱动程序构建C#查询的帮助。我要做的是在milliseconds中创建一个milliseconds,然后过滤那些以毫秒为单位的datediff为greater or equal than an specific number的结果。

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

代码语言:javascript
运行
复制
db.getCollection('Coll').aggregate(
[    
    {$project : {
       "dateInMillis" : {$subtract: [ new Date(), "$UpdateDate" ]},        
       "Param2": "$Param2",
       "Param3": "$Param3"}
    },
    {$match :{ dateInMillis : { $gte : 2662790910}}}
], 
{
    allowDiskUse : true
});

哪个是等价的C#表达式?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-03 15:06:46

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

代码语言:javascript
运行
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37612994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档