$pid),array('$set' => array-6ren">
gpt4 book ai didi

php - 为什么更新集有效但不包括?

转载 作者:可可西里 更新时间:2023-11-01 10:44:46 24 4
gpt4 key购买 nike

我有以下代码,当我调用 $set 时它会覆盖我的数据为正确的用户提供正确的信息。

作品:

$coll1->update(array("_id"=>$pid),array('$set' => array("balance" => $credit)));

但是,当我想增加时,什么也没有发生。

不起作用:

$coll1->update(array("_id"=>$pid),array('$inc' => array("balance" => $credit)));

根据文档,它们应该遵循相同的模式:

$inc

{ $inc : { field : value } }

如果对象中存在字段,则按数字值递增字段,否则将字段设置为数字值。这也可用于通过使用负值来递减。

$set

{ $set : { field : value } }

将字段设置为值。 $set 支持所有数据类型。

最佳答案

首先,这是一个 quick gist演示代码正常工作。

有两点需要注意。

  1. Increment 仅适用于数字。它会在其他数据类型上失败
  2. 默认情况下,其中一些失败可能是无声的。 MongoDB 在“即发即弃”模式下运行,它可能不会抛出异常。

尝试在“安全”模式下运行以确保您的更新工作正常。

在您的情况下,它看起来如下:

$coll1->update(array("_id"=>$pid),array('$inc' => array("balance" => $credit)), array('safe'=>true));

关于php - 为什么更新集有效但不包括?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8483162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com