ID と日付でグループ化して、さまざまな期間のメトリックを調べているコレクションにインクリメンタル マップを縮小するプロセスがあります。したがって、出力コレクションには基本的に、グループ化を処理するための複合 ID があります。
{
"_id" : {
"site" : 67,
"dt" : ISODate("2012-07-03T00:00:00Z")
},
"value" : {
// Metrics here
}
}
ODM を使用して Symfony2 アプリでこのコレクションから結果をフェッチできるようにしたいのですが、_id
フィールドに問題があります。@Id
andとして指定できるかもしれないと思いました@embedOne
:
/**
* @MongoDB\Id
* @MongoDB\EmbedOne(targetDocument="reportId")
*/
protected $id;
ただし、これは機能しません。で設定も試みました@Id
がstrategy=NONE
、QueryBuilder を使用して行をフェッチできますが、Document クラスをハイドレートしようとするとエラーになります。サイト ID と日付 ( ) をスラッグしてみ67-134137916
ました。これにより、DocumentManager を使用できますが、日付範囲でクエリを実行する機能が失われます。
Doctrine2 の ODM でオブジェクトを id として処理する方法について意見がありましたが、これはサポートされていますか?
編集: 複合主キータグを削除しました-質問は、オブジェクトを主キーとして使用することに実際に関係しています。