2

ID と日付でグループ化して、さまざまな期間のメトリックを調べているコレクションにインクリメンタル マップを縮小するプロセスがあります。したがって、出力コレクションには基本的に、グループ化を処理するための複合 ID があります。

{
    "_id" : {
        "site" : 67,
        "dt" : ISODate("2012-07-03T00:00:00Z")
    },
    "value" : {
        // Metrics here
    }
}

ODM を使用して Symfony2 アプリでこのコレクションから結果をフェッチできるようにしたいのですが、_idフィールドに問題があります。@Idandとして指定できるかもしれないと思いました@embedOne

   /**
    * @MongoDB\Id
    * @MongoDB\EmbedOne(targetDocument="reportId")
    */
   protected $id;

ただし、これは機能しません。で設定も試みました@Idstrategy=NONE、QueryBuilder を使用して行をフェッチできますが、Document クラスをハイドレートしようとするとエラーになります。サイト ID と日付 ( ) をスラッグしてみ67-134137916ました。これにより、DocumentManager を使用できますが、日付範囲でクエリを実行する機能が失われます。

Doctrine2 の ODM でオブジェクトを id として処理する方法について意見がありましたが、これはサポートされていますか?

編集: 複合主キータグを削除しました-質問は、オブジェクトを主キーとして使用することに実際に関係しています。

4

1 に答える 1

1

これがあなたの質問の核心になるかどうかはわかりません:複合主キーのチュートリアル

整数と文字列の複合主キーしか持てないようです(日付はありませんか?)。

于 2012-07-11T17:47:57.677 に答える