これが私の問題です:
モデル:
{アプリケーション: "abc"、日付:Time.now、ステータス: "1" user_id:[id1、id2、id4]}
{アプリケーション: "abc"、日付:Time.yesterday、ステータス: "1"、user_id:[id1、id3、id5]}
{アプリケーション: "abc"、日付:Time.yesterday-1、ステータス: "1"、user_id:[id1、id3、id5]}
ある期間のuser_idの一意の数を数える必要があります。
期待される結果:
{アプリケーション: "abc"、ステータス: "1"、unique_id_count:5}
私は現在、集計フレームワークを使用しており、mongodbの外部のIDをカウントしています。
{$ match:{application: "abc"}}、{$ unwind: "$ users"}、{$ group:{_id:{status: "$ status"}、users:{$ addToSet: "$ users"} }}
ユーザーIDの配列が非常に大きいため、日付を繰り返す必要があります。そうしないと、ドキュメントの最大制限(16MB)が取得されます。
$groupbyもできます
{年:{$ year: "$ date"}、月:{$ month: "$ date"}、日:{$ dayOfMonth: "$ date"}
ただし、ドキュメントサイズの制限もあります。
mongodbで設定されたサイズを数えることは可能ですか?
ありがとう