【问题标题】:Preview result of update operation更新操作预览结果
【发布时间】:2015-05-04 18:06:32
【问题描述】:

是否可以在执行实际更新查询之前对文档应用修饰符并查看结果?

类似于虚拟/模拟更新。

我的目的是通过外部服务验证 before 挂钩内的任何可能更新,该外部服务仅接受一些最终的操作后文档,然后可能中止操作。

【问题讨论】:

  • 你是说 mysql 中的提交回滚之类的东西吗?
  • 我正在考虑根据修饰符对象的内容转换文档对象之类的事情,也可以看到新文档的样子。

标签: meteor minimongo


【解决方案1】:

Minimongo 有一个可以使用的函数:LocalCollection._modify(doc, modifier)。为了在服务器上加载LocalCollection,请将minimongo 添加到local/packages

【讨论】:

    【解决方案2】:

    allow,deny function 中编写你的逻辑逻辑

    更新(userId、doc、fieldNames、修饰符)

    fieldNames 是 doc 中的(顶级)字段的数组, 客户想要修改,例如['name', 'score']。

    modifier 是客户端想要执行的原始 Mongo 修饰符; 例如,{$set: {'name.first': "Alice"}, $inc: {score: 1}}。

    Posts.allow({
      update: function (userId, doc, fields, modifier) {
        //you can return false here, if you dont want to update db
      },
    });
    

    【讨论】:

    • 我想我也不能在这里看到转换后的文档。 doc 是当前版本,不是修改版本。
    • 是的。但您可以检查将要更改的字段名称。并决定是否更新。
    • 谢谢,但这不是我要问的。
    猜你喜欢
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    相关资源
    最近更新 更多