2017-05-15 13 views
0

私は、フィールドをインクリメントしようとしていて、結果が得られません。ここ は私のコードです:ODM MongoDBの自動インクリメントが機能しない

class Query 
{ 
    /** 
    * @ODM\Id 
    */ 
    protected $id; 

    /** 
    * @ODM\Field(type="int", strategy="increment") 
    * 
    */ 
    protected $my_id = 0; 

    public function incrementMyId() 
    { 
     $this->my_id++; 
    } 
} 

アクションで私がしようとすると:

$query = new Query(); 
$query->incrementMyId(); 
$this->documentManager->persist($query); 
$this->documentManager->flush(); 

フィールドをmy_idは常にINT(1)と等しいです。 この問題を解決できますか?ありがとう。

私は "alcaeus /モンゴ-PHP-アダプタ" ZF3、

を使用します。 "^ 1
。 "教義/ドクトリン・モンゴ・ODMモジュール":"^0.11。
「教義/ MongoDBの-ODM」:「^ 1.1」

答えて

0

戦略increment通常のフィールドとは、データベース内のクエリの更新文書が正確にper documentationとして、代わりに$set$inc演算子を使用することを意味します。

コレクション全体で、自動生成されたObjectId識別子と固有の自動インクリメントされた識別子の両方が必要なようです。そのような使用のために私を参照してくださいother answer to a similar question

関連する問題