我的lastModified
集合中有games
个属性。目前,我必须在每次更改(当前时间戳)上手动更新lastModified
属性。
当文档的其他属性发生变化时,是否可以自动更新此属性?
我使用Meteor 1.0。
修改
示例文件:
{ "controllerId" : "ACycCfrQuTtuMwjuJ", "body" : "ABC", "userId" : "5iE4P8HPoRCSHe6k8", "lastModified" : ISODate("2015-01-06T15:48:49.346Z"), "_id" : "CQbL49FP9rZkSF7yh" }
更改属性body
时,它应该是这样的:
{ "controllerId" : "ACycCfrQuTtuMwjuJ", "body" : "XYZ", "userId" : "5iE4P8HPoRCSHe6k8", "lastModified" : ISODate("2015-01-06T19:41:19.888Z"), "_id" : "CQbL49FP9rZkSF7yh" }
当其中一个属性发生变化时, lastModified
会自动更新。
答案 0 :(得分:2)
正如here所述,您可以滥用deny
机制为您执行此操作:
Games.deny({update: function(userId, doc) {
doc.lastModified = new Date();
return false;
}})
或者您可以使用collection hooks。您的确切用例是before.update的示例。