我收藏的内容就是这种形式,
{ "_id" : ObjectId("50535036381ef82c08000002"),"source_references" : [
{
"_id" : ObjectId("50535036381ef82c08000001"),
"name" : "abc",
"key" : "123"
}]
}
现在,如果嵌套数组中不存在名称和键,我想在“source_references”中插入另一个数组,否则不要插入。这是我想要的结果,
{ "_id" : ObjectId("50535036381ef82c08000002"),"source_references" : [
{
"_id" : ObjectId("50535036381ef82c08000001"),
"name" : "abc",
"key" : "123"
}
{
"_id" : ObjectId("50535036381ef82c08000003"),
"name" : "reuters",
"key" : "139215"
}]
}
这是我尝试过的:
$Update_tag = array('$addToSet' => array("source_references.$" => array("name" => "reuters", "key" => $r_id)));
$mycollection->update(array("_id" => $id), $Update_tag);
但我无法在嵌套数组中插入另一个数组。此外,我只想在source_references中插入新数组时创建“_id”字段(在嵌套数组内) 。
我哪里错了?希望我对我的问题很清楚。