$inc

如果记录的该节点存在,让该节点的数值加 N;如果该节点不存在,让该节点值等于 N

设结构记录结构为 array(’a’=>1,’b’=>’t’),想让 a 加 5,那么:

$coll->update(
  array(’b'=>’t'),
  array(’$inc’=>array(’a'=>5)),
)

$set

让某节点等于给定值

设结构记录结构为 array(’a’=>1,’b’=>’t’),b 为加 f,那么:

$coll->update(
  array(’a'=>1),
  array(’$set’=>array(’b'=>’f')),
)

$unset

删除某节点

设记录结构为 array(’a’=>1,’b’=>’t’),想删除 b 节点,那么:

$coll->update(
  array(’a'=>1),
  array(’$unset’=>’b'),
)

$push 如果对应节点是个数组,就附加一个新的值上去;不存在,就创建这个数组,并附加一个值在这个数组上;如果该节点不是数组,返回错误。

设记录结构为 array(’a’=>array(0=>’haha’),’b’=>1),想附加新数据到节点 a,那么:

$coll->update(
  array(’b'=>1),
  array(’$push’=>array(’a'=>’wow’)),
)

这样,该记录就会成为:array(’a’=>array(0=>’haha’,1=>’wow’),’b’=>1)

$pushAll

与$push 类似,只是会一次附加多个数值到某节点

$addToSet

如果该阶段的数组中没有某值,就添加之

设记录结构为 array(’a’=>array(0=>’haha’),’b’=>1),如果想附加新的数据到该节点 a,那么:

$coll->update(
  array(’b'=>1),
  array(’$addToSet’=>array(’a'=>’wow’)),
)

如果在 a 节点中已经有了 wow,那么就不会再添加新的,如果没有,就会为该节点添加新的 item——wow。

$pop 设该记录为 array(’a’=>array(0=>’haha’,1=>’wow’),’b’=>1)

删除某数组节点的最后一个元素:

$coll->update(
  array(’b'=>1),
  array(’$pop=>array(’a'=>1)),
)

删除某数组阶段的第一个元素

$coll->update(
  array(’b'=>1),
  array(’$pop=>array(’a'=>-1)),
)

$pull

如果该节点是个数组,那么删除其值为 value 的子项,如果不是数组,会返回一个错误。

设该记录为 array(’a’=>array(0=>’haha’,1=>’wow’),’b’=>1),想要删除 a 中 value 为 haha 的子项:

$coll->update(
  array(’b'=>1),
  array(’$pull=>array(’a'=>’haha’)),
)

结果为: array(’a’=>array(0=>’wow’),’b’=>1)

$pullAll

与$pull 类似,只是可以删除一组符合条件的记录。

转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记

如果觉得本篇文章对您十分有益,何不 打赏一下

谢谢打赏

本文链接地址: PHP 对 mongoDB 的 update 操作

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可