我在Meteor集合中设置嵌套值时遇到问题。我有:
{
"_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"
}
我的控制台发出错误:" MinimongoError:无法使用部件' RoommWk1'穿越c16"
c16是当前Year字段的值。我想在年度字段值' c16'下嵌套RoomWk1的值,即! 21A'。
不确定我哪里出错了。
编辑:
文件的当前结构是:
{{1}}
此时嵌套并不存在,但我需要嵌套“RoomWk1”'来到RoomWk5'特定年份的领域向前发展。
答案 0 :(得分:0)
我会把当前年份选择器放在mongo之外。根据我的经验mongo doest喜欢[i]
var currentYear = progs[i]._id
我的猜测是你有多年,你有以下巢。
{year:
{c16: {
RoomWk1: room
}}
}
您可以使用第二个选择器来获得更多控制权。我不确定你是否在文件中有这个,但是如果有一年'相当于我将它添加到选择器。这样你就可以在$ set中使用$
var currentYear = progs[i]._id
Programs.update({_id: currentYear, 'year': 'c16'}, {$set: {'year.$.RoomWk1': room}}}