【问题标题】:How to allow editing some field in some collections MondoDB Realm?如何允许编辑某些集合 MongoDB Realm 中的某些字段?
【发布时间】:2021-12-25 11:32:35
【问题描述】:

我需要允许我收藏的某个字段中的所有用户写入

我所有的数据都保存在 MondoDB Atlas 中,我将其同步到“同步”MongoDB 领域。

我的任务有点问题

如果我在“同步”规则中设置: 读——真 写 - 假 并在集合中设置这些规则:

{
  "roles": [
    {
      "name": "default",
      "apply_when": {
        "%%true": true
      },
      "insert": false,
      "delete": false,
      "search": true,
      "read": true,
      "write": false,
      "fields": {
        "countViews": {
          "write": true
        },
        "listViewers": {
          "write": true
        }
      },
      "additional_fields": {}
    }
  ],
  "filters": [],

然后有这个错误: 同步:连接[1]:会话[1]:收到:错误“权限被拒绝(BIND,REFRESH)-请求日志 URL:链接”(error_code=206,try_again=true)

但如果我设置同步规则: 读取 - 允许 写 - 允许 所有用户都可以在任何字段和集合中写入数据,而不管集合中的规则

所以,我不明白我在哪里出错以及我应该在同步中设置什么规则。同步规则 > 收集规则?还是我写的收集规则有误?

【问题讨论】:

    标签: mongodb realm mongodb-atlas


    【解决方案1】:

    问题在于文档级别的写入权限优先于字段级别的权限。

    你的问题中的规则是这样写的:false

    "roles": [
        {
          "name": "default",
          "apply_when": {
            "%%true": true
          },
          "write": false,   <- document level write is FALSE which takes priority
    

    然后字段级规则为真但被覆盖

    "fields": {
       "countViews": {
          "write": true
       },
    

    来自documentation

    文档级别的写入权限优先于任何字段级别 权限。如果一个角色有一个文档级别的写规则,它适用于 文档中的所有字段,并且不能被覆盖。

    有很多解决方案;省略文档级规则并在各个字段上指定规则。或者添加“additional_fields”规则以将规则一揽子应用到您不为其提供规则的字段。

    "additional_fields": { "write": true }
    

    【讨论】:

    • 我也试过没有这条线。它没有改变任何东西,也没有解决我的问题我认为问题可能是两个地方:1.)“同步”,因为当我将写入设置为 true 时,用户可以在任何字段中写入数据(我只需要在 2 个字段中)集合之一)。但如果 write 为 false,则用户无法在任何地方写入。也许我需要在这里定制一些东西? 2.) 我的规则有一些错误,它不起作用
    • @AleksandrProkopenko 我明白了。如果您尝试了其他方式,则应将其包含在问题中,以便我们获得有关您已完成哪些故障排除的更多信息 - 它有助于我们编写更好的答案,因为我们有准确的数据可供使用。如您所见,根据问题中的信息,我的答案是正确的。如果您能澄清问题,我们会再看一看,看看我们能提出什么建议。
    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2020-09-22
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多