【发布时间】:2015-06-20 11:24:56
【问题描述】:
在 Meteor 中,我有一个带有 Schema 的集合,并且动态添加了许多项目。
在这种情况下,我正在处理里程碑对象,一旦用户勾选了一项,我想将这个 Collections 项目中的完成更新为 true(默认为 false)
这是我的架构
milestones: {
type: Array,
optional: true
},
'milestones.$': {
type: Object
},
'milestones.$.name': {
type: String
},
'milestones.$.hours': {
type: Number
},
'milestones.$.complete': {
type: Boolean
}
我如何为此编写$set 声明?
【问题讨论】:
-
Milestones.update({_id:this._id},{$set:{'milestone.complete':true}})假设您正在使用事件处理程序并且可以使用this._id上下文。 -
只有 Milestones 不是一个集合,它是 Projects 集合中的一个对象。我正在尝试这个
Projects.update({_id:currentPostId, 'milestones.name':this.name}, {$set:{completed:true}});但无济于事.. -
为什么需要这个名字?只需做一个
Projects.update({_id:currentPostId},{$set:{'milestones.complete':true}}) -
我需要确定里程碑,因为同一个对象中有多个。
-
Projects.update({_id:this._id},milestones:{$elemMatch:{'milestones.name':this.name}}, {$set: {'milestones.$.complete':true}});试试看
标签: meteor