在PHP驱动程序中实现$ slice?

时间:2013-04-25 13:59:33

标签: php mongodb push slice

我的问题是,如果可以使用'$ slice'与update()和$ push in mongodb。

我已经尝试了这个:(有和没有强制转换为(对象)

$db->collection->update(
     array('_id' => new MongoId($id)), 

     (object)array( '$push' => 
          array('thumbs' => array(
               '$each' => $items, 
               '$slice' => -5
))));

但唯一发生的事情是mongo将update()中的第二个数组添加到集合中。所以我得到了

thumbs: [ { "$each" : ...

提前致谢!

1 个答案:

答案 0 :(得分:0)

您正在运行MongoDB 2.4之前版本。

MongoDB 2.4引入了$slice,之前$push运算符不支持$each运算符。

当MongoDB遇到像这样的无法识别的运算符(即在MongoDB 2.2中)时,它会认为它实际上是你想要使用的密钥,并像对待任何其他数据一样对待它。