2017-04-20 75 views
0

我有一個文件,看起來像MongoDB中找到然後更新 - PHP

{ 
    _id: ObjectId("someId"), 
    recipients: [ 
    { 
     email: "emailaddress" 
    }, 
    { 
     email: "email2" 
    } 
    ] 
} 

我試圖更新第一個收件人對象,並添加另一個屬性,但無濟於事。

{ 
    _id: ObjectId("someId"), 
    recipients: [ 
    { 
     email: "emailaddress", 
     new_prop: "something" 
    } 
    ] 
} 

有沒有辦法用findOneAndUpdate做到這一點?我正在使用PHP

回答

0

我做了一些研究。我是MongoDB的新手,所以我依靠我的開發人員來驗證此代碼。我想這將這樣的伎倆:

$mongoID = new MongoID('yourID'); 
$newdata = array('$set' => array("recipients.0.new_prop" => "Something")); 
$collection->update(array("_id" => $mongoID), $newdata); 

這可能有助於訪問此頁面:https://docs.mongodb.com/manual/reference/operator/update/set/

+0

我的司機沒有更新功能,只有updateOne,但我用$ elemMatch爲目標的子文檔在一個數組中 – MikeL