如何在Meteor方法中运行“$set”和“$pull”?
我想通过名为如何在Meteor方法中运行“$set”和“$pull”?,meteor,collections,Meteor,Collections,我想通过名为教室.删除的方法更新名为SMUProfiles的集合。我想从SMUProfiles内的两个位置拉出教室id,即一个位于教室内。所有者有一个代码数组,另一个位于教室内。学生 我已经成功地添加了$set部分,现在尝试添加$pull,但是$pull似乎不起作用 我们可以这样做$set和$pull吗 /*删除教室的方法*/ “教室.删除”(教室id){ 如果(!this.userId){ 抛出新流星。错误(“未授权”); } 教室。移除(教室id) 让ClassID=classicks.fi
教室.删除的方法更新名为SMUProfiles
的集合。我想从SMUProfiles
内的两个位置拉出教室id
,即一个位于教室内。所有者有一个代码数组,另一个位于教室内。学生
我已经成功地添加了$set部分,现在尝试添加$pull,但是$pull
似乎不起作用
我们可以这样做$set
和$pull
吗
/*删除教室的方法*/
“教室.删除”(教室id){
如果(!this.userId){
抛出新流星。错误(“未授权”);
}
教室。移除(教室id)
让ClassID=classicks.find({owner:this.userId}).fetch().map(函数(classicks){
返回教室。_id})
//console.log(ClassID);
smu.update({
所有者:this.userId,
}, {
$set:{
“教室.所有者”:ClassID
},
$pull:{
“教室.学生”:教室id
}
}
)
}
您试图在同一更新中的同一字段上执行$set
和$pull
——这两个操作冲突;所以不,你不能这样使用这些操作符
您可以轻松地将其分为两部分:
SMUProfiles.update(
{ owner: this.userId },
{ $set: { 'classrooms.owner': classids },
);
SMUProfiles.update(
{ owner: this.userId },
{ $pull: { 'classrooms.students': classroom_id },
);
请参见例如什么确切定义了不起作用
?是否有任何错误或意外行为?如果是这样的话,你期望什么行为?@Jankapunkt the$pull
没有从教室内的数组列表中拉出教室id
。学生
。