0

我的问题是是否可以在 mongodb 中将 '$slice' 与 update() 和 $push 一起使用。

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

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

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

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

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

提前致谢!

4

1 回答 1

0

您正在运行 MongoDB pre 2.4。

MongoDB 2.4 引入了$slice,之前的$push操作符不支持$each操作符。

当 MongoDB 遇到像这样的无法识别的运算符时(即在 MongoDB 2.2 中) $push 它会认为它实际上是您想要使用的键并将其视为任何其他数据。

于 2013-05-05T01:00:26.833 回答