1

我有一个 MongoDB 的结构,如下所示:

Object_id {
    workflow {
        tree_id {
            other_ids {...}
            other_ids {...}
            other_ids {...}
            subscribers {
                subscriber_id {
                    email : value
                    }
                }
            }
        }
    }
}

在这个屏幕上可以清楚地看到:

我的 MongoDB 结构

我想添加另一个字段,例如name : last_name,在email : value. 我使用以下代码进行了尝试:

Model::where('_id', '5adde78993def907b71ce503')->push(array('workflow.5ace115a93def953d254b502.subscribers.5ad09c2993def90a2c59fa59' => ['test' => 'testvalue']));

但是,此代码不起作用。它向我显示一个错误说:

字段 'workflow.5ace115a93def953d254b502.subscribers.5ad09c2993def90a2c59fa59' 必须是一个数组,但在文档 {_id: ObjectId('5adde78993def907b71ce503')} 中是对象类型

更新['upsert' => true]也不起作用,因为此方法会删除我的集合并添加数据。我怎样才能在这个数组中添加一些东西?

4

2 回答 2

0

您显示的结构中没有任何数组。都是文档或子文档。您不能对非数组对象执行数组操作。要将 Subscriber_id 视为一个数组,它应该是这样的

订阅者 ID [{ 电子邮件:值 }]

于 2018-04-23T14:48:47.797 回答
0

模型::where('_id', '5adde78993def907b71ce503')->push('workflow.5ace115a93def953d254b502.subscribers.5ad09c2993def90a2c59fa59' => ['test' => 'testvalue']);

请试试这个。

于 2018-09-01T04:28:55.100 回答