【问题标题】:RavenDB sorting by Range fieldRavenDB 按 Range 字段排序
【发布时间】:2014-02-04 14:29:16
【问题描述】:

我一直在使用 RavenDB Northwind 数据库,但在获取按货运排序的订单时遇到了麻烦。

我的索引:

    Map = orders => from o in orders
                    select new {
                            o.Freight
                        };
    IndexSortOptions.Add(x => x.Freight, SortOptions.Double);
    Indexes.Add(x => x.Freight, FieldIndexing.NotAnalyzed);

我的查询:

 return sess.Query<Order>("Orders/ByFreight")
                    .OrderByDescending(x => x.Freight)
                    .Select(x => x.Freight);

它得到以下命令:

[
    32.38,
    11.61,
    65.83,
    41.34 ... ]

这显然是不正确的。在工作室中,我可以将订单定义为货运,它的订单很好。但是,如果在工作室中我将范围指定为超过 Freight_Range,我会得到相同的结果。在我看来,Raven 正在选择 Freight_Range 字段作为排序依据,而不是 Freight 字段。为什么?

【问题讨论】:

    标签: ravendb


    【解决方案1】:
    • 删除以Indexes.Add 开头的行。你不需要这样做。

    • 使用此语法代替IndexSortOptions:

      Sort(x=> x.Freight, SortOptions.Double);
      
    • 确保您的 Freight 字段确实是您的 Order 类中定义的双精度字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多