0

私の地図:

docs.Visits.Select(obj => new {
    Year = obj.MetaData.CreatedDate.Year,
    Month = obj.MetaData.CreatedDate.Month,
    Day = obj.MetaData.CreatedDate.Day,
    MediaSource = ((System.String)(obj.MediaSource)),
    Version = ((System.String)(obj.Version)),
    Count = 1
})

私の削減:

results.GroupBy(result => new {
    Year = result.Year,
    Month = result.Month,
    Day = result.Day,
    MediaSource = result.MediaSource,
    Version = result.Version
}).Select(agg => new {
    Year = agg.Key.Year,
    Month = agg.Key.Month,
    Day = agg.Key.Day,
    MediaSource = agg.Key.MediaSource,
    Version = agg.Key.Version,
    Count = Enumerable.Sum(agg, x => ((System.Int32)(x.Count)))
})

クエリの例:

Year: 2012 AND Month: 8 AND Day: 22

それでも、重複するアイテムを取得します。カウントが同じである場合もあれば、カウントのみが異なる場合もあります。Visitコレクションのデータセットは約200,000のドキュメントであるため、何もありません。インデックスを再追加して再設定しましたが、それでも同じ奇妙な動作です。

つまり、実際には、次のように、複数の同一のマップが削減されます。

{
  "Year": "2012",
  "Month": "8",
  "Day": "22",
  "MediaSource": null,
  "Version": null,
  "Count": "7701"
}

それらをグループ化すると、どうすればこれが可能になりますか。年、月、日、MediaSource、バージョン?「groupby」でない場合のgroupbyのポイントは何ですか?ある日付では、その日のすべてのカウントの合計が、データベース内の訪問ドキュメントの合計量よりも実際に多くなります。

私は何が間違っているのですか?

データベースサーバービルド960、クライアントビルド888。.NETRavenDBクライアント1.2.2068。

4

0 に答える 0