根据 PHP 中的 2 个条件更新 MongoDB 中的数量
Update quantity in MongoDB based on 2 conditions in PHP
我正在 MongoDB 中制作购物车,如果用户添加已经添加的产品,我想更新数量字段。
这是我的文档:
{
"_id" : "mzipdNS2Xyw-IqV085KrBe5RZucp9M_KqDSYjPinq20",
"products" : [
{
"productId" : "27122",
"quantity" : NumberLong(1),
"displayPrice" : "€ 599.00",
"price" : NumberLong(599),
"name" : "APPLE IPHONE 5S 16GB SPACE GRAY"
}
]
}
我正在运行下面的代码来更新我的文档,但是它不起作用,有人可以帮助我吗?
$collection->update(array("_id" => $userId, array("products" => array("productId" => $productId))),
array('$set' => array("quantity" => $newQuantity
))
);
为了更新产品数组中的正确项目,您必须使用 positional $ operator。
$collection->update(
array(
"_id" => $userId,
"products.productId" => $productId,
),
array('$set' => array("products.$.quantity" => $newQuantity))
);
我正在 MongoDB 中制作购物车,如果用户添加已经添加的产品,我想更新数量字段。
这是我的文档:
{
"_id" : "mzipdNS2Xyw-IqV085KrBe5RZucp9M_KqDSYjPinq20",
"products" : [
{
"productId" : "27122",
"quantity" : NumberLong(1),
"displayPrice" : "€ 599.00",
"price" : NumberLong(599),
"name" : "APPLE IPHONE 5S 16GB SPACE GRAY"
}
]
}
我正在运行下面的代码来更新我的文档,但是它不起作用,有人可以帮助我吗?
$collection->update(array("_id" => $userId, array("products" => array("productId" => $productId))),
array('$set' => array("quantity" => $newQuantity
))
);
为了更新产品数组中的正确项目,您必须使用 positional $ operator。
$collection->update(
array(
"_id" => $userId,
"products.productId" => $productId,
),
array('$set' => array("products.$.quantity" => $newQuantity))
);