【发布时间】:2022-01-28 14:55:30
【问题描述】:
大家好,我正在尝试创建一个查询,以便通过在 MongoDB 中添加另一个产品来更新用户的查询。
表orders的结构是:
{
"username": "mike",
"products": [
{
"_id": {
"$oid": "61f14c42855800006f003062"
},
"number": "3",
"name": "Honduras",
"price": 7,
"stock": 10
}
],
"status": "UNPAID"
}
我在 PHP 代码中的查询如下:
$collection -> updateOne(
"username"=>"$username",'$push'=>["products" => "$json"]
);
但我每次都会遇到同样的错误:
Parse error: syntax error, unexpected token "=>", expecting ")"
有什么建议吗?
【问题讨论】:
-
将
'$push'更改为$push -
@executable 还是一样的错误。
-
您需要将语句包装在一个数组中:
updaeOne([ "username" => ..., '$push' => ...])。现在,您正在尝试在数组之外使用 PHP 数组语法=>(语法错误) -
@M.Eriksson 嘿。我将查询更改为: updateOne(["username"=>"$username",'$push'=>["products" => "$json"]]); 和错误我得到的是:致命错误:未捕获的 ArgumentCountError:函数 MongoDB\Collection::updateOne() 的参数太少,在第 28 行的 C:\xampp\htdocs\eCoffeeGrinder\assets\php\add_to_cart.php 中传递了 1 和预计至少 2 个
-
看看你在下面得到的答案。我更关注语法错误而不是 Mongos 方法。 :-)