我想通过称为import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.hamcrest.Matchers.hasSize;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
的方法来更新名为SMUProfiles
的集合。我想从classroom.delete
内部的2个地方拉出classroom_id
,即在SMUProfiles
内部有一个代码数组,而另一个在数组classrooms.owner
内部。
我已经成功完成了$ set部分,现在尝试添加$ pull,但是classrooms.students
似乎不起作用。
我们可以用这种方式来做$pull
和$set
吗?
$pull
答案 0 :(得分:1)
您要在同一更新中的同一字段上$set
和$pull
进行操作-这两个操作发生冲突;所以不,您不能以这种方式使用这些运算符。
您可以轻松地将其分为两部分:
SMUProfiles.update(
{ owner: this.userId },
{ $set: { 'classrooms.owner': classids },
);
SMUProfiles.update(
{ owner: this.userId },
{ $pull: { 'classrooms.students': classroom_id },
);
例如参见this answer