【问题标题】:MongoDB filter with date is not returning any result with C#带有日期的 MongoDB 过滤器不使用 C# 返回任何结果
【发布时间】:2015-12-06 21:52:15
【问题描述】:

我将 C# 与 Visiual Studio 2015/MongoDB C# 驱动程序 NuGET 包一起使用。我在日期过滤和排序方面遇到问题。

我创建了以下 MetricBatch 类

class MetricsBatch
{
    public MongoDB.Bson.ObjectId _id { get; set; }
    public MongoDB.Bson.BsonDateTime BatchStartTime { get; set; }
    public MongoDB.Bson.BsonDateTime    BatchEndTime { get; set; }
    public string MetricsType { get; set; }
}

我已经创建了这个类的对象“objMetricsBatch”并插入到MongoDB中

var batchCollection = _database.GetCollection<MetricsBatch>("MetricsBatch");
batchCollection.InsertOneAsync(objMetricsBatch);

它被成功插入,因为我可以看到记录

MongoDB.Bson.BsonDateTime strtDate = new BsonDateTime(DateTime.Today.AddDays(-2) )
var filter2 = Builders<MetricsBatch>.Filter.Gte("TradeBatchStartTime", strtDate);
var result2 = await apmMetricsCollection.Find<MetricsBatch>( filter2 ).ToListAsync();

没有返回结果,不知道为什么。我也尝试过某种日期,但似乎也不起作用。

请提出建议。

【问题讨论】:

    标签: c# mongodb date filter find


    【解决方案1】:

    我进一步检查了我的代码并发现以下内容,在下面的过滤器中,我将字段名称设置为“TradeBatchStartTime”而不是“BatchStartTime”。令人惊讶的是,C# 的 MangoDB 或 MangoDB 驱动程序没有给出任何错误。我不确定 MangoDB 为什么不给出警告或错误的原因。或者可能是 C# MangoDB 驱动程序中的一些错误。

    现在尝试检查我如何将 MangoDB 文档之间的关系与聚合位放在一起。

    var filter2 = Builders.Filter.Gte("TradeBatchStartTime", strtDate);

    【讨论】:

      【解决方案2】:

      这不是 MongoDB C# 驱动的问题。由于 MongoDB 是 NoSQL 数据库,因此数据库没有任何特定的模式。因此,在第一个代码中,当您使用“TradeBatchStartTime”字段进行搜索时,Query 试图查找“是否有任何文档包含 'TradeBatchStartTime' 字段的值大于 'startDate' 的值?”但是,由于数据库中没有任何名为“TradeBatchStartTime”的字段,因此查询不返回任何结果。

      当您使用 POCO 模型时,如果您想要类型安全,那么您可以使用另一个使用 LINQ 的 Gte 过滤器定义重载。如下:

      var filter2 = Builders<MetricsBatch>.Filter.Gte(x=>x.BatchStartTime , strtDate); 
      

      现在,如果您与“TradeBatchStartTime”字段而不是“BatchStartTime”进行比较,则会出现编译时错误。 希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        • 1970-01-01
        • 2020-08-23
        • 1970-01-01
        相关资源
        最近更新 更多