2016-05-28 2 views
0

メテオコレクションにネストされた値を設定する際に問題があります。私が持っている:

Programs.update({ _id: progs[i]._id }, { $set: { "Year.RoommWk1": room }}); 

私のコンソールにエラーを与えている:「MinimongoError:C16を横断する部分 『RoommWk1』を使用することはできません」

C16は、現在の年フィールドの値です。私は年フィールドの値 'c16'の下で、RoomWk1の値を '21A'にネストしたいと思います。

どこが間違っているのかわかりません。

EDIT:文書の

現在の構造は次のとおりです。

{ 
    "_id" : ObjectId("56ce676c082e64f956411a3c"), 
    "RecordID" : 8514, 
    "FullName" : "AIDAN ANDERSON", 
    "Year" : "c16", 
    "CampYear" : "ssipc16", 
    "Week1" : "1", 
    "Week2" : "2", 
    "Week3" : "0", 
    "Week4" : "0", 
    "Week5" : "0", 
    "Week6" : "", 
    "Notes" : "", 
    "RoomateRequest" : "Per, Ollie, Paul B., Linus, Sam L.", 
    "LessonRequest" : "", 
    "ArrivalInfo" : "", 
    "Automobile" : 0, 
    "Repertoire" : "Bach" 
} 

ネスティングは現時点では存在しませんが、私は巣に特定の下の「RoomWk5」フィールドに「RoomWk1」を必要とします年は前進しています。

+0

plsは注目クエリ文書とモデルのデザイン – karthi

答えて

0

現在のセレクタをmongoの外に置きます。私の経験から、モンゴルのような[] var currentYear = progs[i]._id

私はあなたが複数の年を持っているとあなたは次の巣を持っていると思います。 {year: {c16: { RoomWk1: room }} }

第2のセレクタを使用すると、より多くの制御を行うことができます。私はあなたがドキュメントにこれを持っているかどうかはわかりませんが、「年」の同等のものがあればセレクタにそれを追加します。そうすれば、あなたは

var currentYear = progs[i]._id Programs.update({_id: currentYear, 'year': 'c16'}, {$set: {'year.$.RoomWk1': room}}}

+0

を示し、私はモンゴ内反復処理の問題を持っていたことがありません、あなたの$セットで$を使用することができます。 –

関連する問題