mongodb - Using $set to nest value in Meteor using dot notation doesn't work -
i'm having trouble setting nested value in meteor collection. have:
programs.update({ _id: progs[i]._id }, { $set: { "year.roommwk1": room }});
my console giving error: "minimongoerror: cannot use part 'roommwk1' traverse c16"
c16 value of current year field. want nest value of roomwk1, '21a', under year field value 'c16'.
not sure i'm going wrong.
edit:
current structure of documents is:
{ "_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" }
the nesting doesn't exist @ moment, need nest 'roomwk1' 'roomwk5' fields under specific year moving forward.
i put current year selector outside mongo. experience mongo doest [i] var currentyear = progs[i]._id
my guess have multiple years , have following nest. {year: {c16: { roomwk1: room }} }
you can use second selector more control. i'm not sure have in document if there 'year' equivalent add selector. way can use $ in $set
var currentyear = progs[i]._id programs.update({_id: currentyear, 'year': 'c16'}, {$set: {'year.$.roomwk1': room}}}
Comments
Post a Comment