我知道在Collection-Hooks上打开的问题与SimpleSchema不兼容。问题似乎是SimpleSchema在Collection-Hooks之前运行。
但是在下面的示例中,我将文档插入到完全不同的集合中,它似乎一起绕过SimpleSchema。这对我来说有点令人惊讶,因为我认为因为Logs是一个不同的集合,它会触发它自己的SimpleSchema ......但它并不像我在这里所做的那样。
有人知道允许日志在此示例中使用它的SimpleSchema的变通方法吗?
Products = new Mongo.Collection('products');
Products.after.insert((userId, doc) => {
Logs.insert({'someinvalid': 'schema'});
// logs still gets inserted here even though it's schema should be invalid
});
Logs = new Mongo.Collection('logs');
LogsSchema = new SimpleSchema({
'someSchema': {
type: String
}
});
Logs.attachSchema(LogsSchema);
答案 0 :(得分:0)
我自己想通了。我需要做的就是应用检查包并使用:
Products.after.insert((userId, doc) => {
let obj = {'someinvalid': 'schema'};
check(obj, LogsSchema);
Logs.insert(obj);
});
我忘了你可以使用SimpleSchema作为集合之外的验证检查^^;