RavenDb Linq查询越来越低的比较

时间:2014-06-08 08:10:15

标签: c# linq ravendb nosql

我在RavenDB中有简单的索引:

图:

from q in docs.Questions
from Tag in q.Tags
select new { Tag, Count = 1 }

减少

from result in results
group result by result.Tag into g
select new { Tag = g.Key, Count = g.Sum(x=>x.Count) }

我有一些代码可以调用它:

var query = from item in session.Query<TagCount>("Questions/Tags") select item;
Console.WriteLine(query.Count());
foreach (var result in query)
{
  Console.WriteLine("{0} - {1}", result.Tag, result.Count);
}

它产生输出:

3
Games - 1
RavenDb - 2
Intro - 1

正如所料。 但是,如果在这个循环之后添加一些代码:

var counted = from item in query
 where item.Count > 0
 select item;
Console.WriteLine(counted.Count());

输出将是:

3
Games - 1
RavenDb - 2
Intro - 1
0

WTF?为什么计数数为零?

但如果我在计算比较中有'==',那就有效:

var counted = from item in query
 where item.Count == 1
 select item;
Console.WriteLine(counted.Count());

可生产

3
Games - 1
RavenDb - 2
Intro - 1
2

怎么回事?

1 个答案:

答案 0 :(得分:0)

有一个问题是我没有将Field添加到索引来存储和分析它。 添加字段以查询和设置此字段的分析可以解决问题。