我是 MongoDB 和 PHP 的新手,我正在嘗試制作一個 API。我當前遇到的問題是我無法將陣列添加到(物件)陣列內的物件中。我嘗試了很多,但都失敗了。
這是我到目前為止的檔案:
_id:62307ccecabc9c2a2c4563e3
username:"NEWUser"
email:[email protected]
password:1234
level:1
domainArray:Array
0:Object
domainname:"example.com"
domainvalue:4
1:Object
domainname:"facebook.com"
domainvalue:3
我想在 domainvalue 之后添加一個陣列,但似乎不能這樣做。
我的代碼:
public function postDomain($domainData){//add user and replace it with testuser
$data = json_decode(file_get_contents("php://input"), true);
$collection = $collection = (new MongoDB\Client('mongodb://localhost:27017'))->mydb->users;
$insertOneResult = $collection->updateOne(
["username" => "NEWUser"],
['$push' =>["domainArray" => $data]]
);
}
$data 變數:
{
"domainname":"twitter.com",
"domainvalue":2
}
我將如何更改此代碼以便在 domainvalue 之后添加一個陣列?我試過做這樣的事情:
$insertOneResult = $collection->updateOne(
["username" => "NEWUser", "domainArray"],
['$push' => ["domainname.$.ouputArray" => array("outputArray")]]
);
但沒有任何運氣。有人可以幫助我,因為我真的被這個問題困住了。提前致謝!
uj5u.com熱心網友回復:
要為陣列中的嵌套檔案創建新欄位,您需要$set運算子和$[]所有位置運算子。
db.collection.update({
"username": "NEWUser"
},
{
"$set": {
"domainArray.$[].ouputArray": [] // Array
}
})
示例 Mongo Playground
而對于 PHP 語法:
$insertOneResult = $collection->updateOne(
["username" => "NEWUser"],
['$set' => ["domainArray.$[].ouputArray" => array("outputArray")]]
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/444939.html
