2011-07-26 6 views
1

私は以下のようにMongoDBに格納された各教師のための各試験の各質問に対する回答を提示する階層データ構造があります:あなたが使用することはできません、私はあなたのコメントに感謝

db.foo.insert({name:"teacher1"}); //Done 

db.foo.update({name:"teacher1"},{$push:{"exams":{name:"exam1"}}}); //Done 

db.foo.update({"exams.name":"exam1"},{$push:{"exams.$.questions":{name:"question1"}}}); //Done 

db.foo.update({"exams.questions.name":"question1"}, 
    {$push:{"exams.$.questions.$.answers":{name:"answer1"}}}); 

// Error => can't append to array using string field name [$] 

答えて

2

2つの位置演算子。次のとおり:http://www.mongodb.org/display/DOCS/Updating:

$演算子(それ自身)は、「照会で一致する配列項目の位置」を意味します。これを使用して、配列メンバーを見つけて操作します。

現在、$演算子はクエリの最初に一致する項目にのみ適用されます。

関連する問題