gpt4 book ai didi

javascript - 请参阅 Meteor.js 中允许/拒绝规则的更新文档

转载 作者:可可西里 更新时间:2023-11-01 09:52:16 24 4
gpt4 key购买 nike

我想为 Meteor.js 中的文档更新指定一个允许规则,该规则取决于已更新 文档的属性。在update回调,我得到的只是文档、更改的顶级字段列表和 Mongo 修饰符。有没有一种简单的方法可以确定文档更新后的外观?


一个重要的现实生活示例:我有一个 Party 模型,其中 maxCount 整数指定可以容纳多少人参加派对,people 包含出席人员姓名的数组。用户可以将多个名称推送到该数组。如果在生成的文档中数组的长度不超过 maxCount,我想允许进行更新。

最佳答案

这是一个完美的例子,说明了为什么当前形式的允许/拒绝规则不足以解决大多数现实世界的问题。任何文档都可以通过多种方式进行更新,使用允许/拒绝为您提供的工具来检查所有这些方式是不切实际的。我会说只有当您的权限如下所示时才应该使用它们:“文档的所有者可以对文档做任何她想做的事情”。

话虽这么说,如果您真的想用上面的例子做这件事,您可以尝试检查是否people.length < maxCount什么时候modifier['$push']['people']已定义。

据我所知,不存在针对此问题的通用解决方案。这就是我对所有数据库突变使用方法的原因。

你也可以看看simple-schemacollection2 (我没试过)。根据文档,simple-schema 在定义 min/max 时可以采用一个函数。在一个领域。我不清楚这是否意味着您可以动态定义 min/max基于正在更新或不更新的对象。

关于javascript - 请参阅 Meteor.js 中允许/拒绝规则的更新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22557706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com