我有一个MongoDB结构,如下所示:
Object_id {
workflow {
tree_id {
other_ids {...}
other_ids {...}
other_ids {...}
subscribers {
subscriber_id {
email : value
}
}
}
}
}
}
可在此屏幕上清楚地看到:
我想在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]
进行更新也不起作用,因为此方法会删除我的收藏并添加数据。如何在此数组中添加内容?
答案 0 :(得分:0)
您显示的结构中没有任何数组。所有都是文档或子文档。您无法对非数组对象执行数组操作。要将Subscriber_id视为数组,它应该是这样的
subscriber_id [{ 电子邮件:价值 }]
答案 1 :(得分:0)
Model :: where('_ id','5adde78993def907b71ce503')-> push('workflow.5ace115a93def953d254b502.subscribers.5ad09c2993def90a2c59fa59'=> ['test'=>'testvalue']);
请尝试这个。