示例文档:
{
"_id" : "5fTTdZhhLkFXpKvPY",
"name" : "example",
"usersActivities" : [
{
"userId" : "kHaM8hL3E3As7zkc5",
"startDate" : ISODate("2015-06-01T00:00:00.000Z"),
"endDate" : ISODate("2015-06-01T00:00:00.000Z")
}
]
}
我是MongoDB的新手,阅读了其他关于更新嵌套数组的问题,但我无法正确地执行它。我想要做的是更改具有给定userId的用户的startDate和endDate。我的问题是它总是将新对象推送到数组中,而不是更改具有给定userId的对象。
Activity.update(
_id: activityId, usersActivities: {
$elemMatch: {
userId: Meteor.userId()
}
}},
{
$push: {
'usersActivities.$.startDate': start,
'usersActivities.$.endDate': end
}
}
);
我很高兴能为您提供帮助。