配列内の特定の値を照会して更新したいのですが、インデックスがわかりません。内容はこちら。
{ "_id" : ObjectId("50072b17b4a6de3b1100000f")
"employment_details" : [
{
"_id" : ObjectId("50072b17b4a6de3b11000015"),
"title" : "Information Technology Compliance & Security",
"rank" : null,
"department" : null,
"current" : false,
"company_id" : ObjectId("5007269fb4a6de941001d19d")
}
......
{
"_id" : ObjectId("50072b17b4a6de3b11000018"),
"title" : "security engineer",
"rank" : null,
"department" : null,
"current" : false,
"company_id" : ObjectId("5007269fb4a6de941001dasd")
}
{
"_id" : ObjectId("50072b17b4a6de3b11000016"),
"title" : "software Engineer",
"rank" : null,
"department" : null,
"current" : true,
"company_id" : ObjectId("5007269fb4a6de94100189e")
}
]
_idがObjectId("50072b17b4a6de3b1100000f")に一致し、company_idがObjectId("5007269fb4a6de94100189e ") に一致する場合、employment_details内の配列内の特定のオブジェクトの特定の現在のフィールド (インデックスがわからない)を変更したい。
これが私がやったことです。でも更新しない。
$criteria = array("_id" => $mongo_id, "employment_details.company_id" => $company_id);
$new_object = array('$set' => array('employment_details.$.current' => "false", "updated_at" => $time));
$mycollection->update($criteria,$new_object);
そのような更新を行う方法は?