如何在mongodb中删除数组项并更新数组的顺序索引

时间:2013-11-12 04:11:06

标签: php arrays mongodb

现在我有一个“答案”数组,我想删除这个数组的第一个,但是这个数组的索引项是1但不是0.我不知道mongodb是否支持删除项数组和更新索引数组? 我的代码:

删除前:

  

阵列(
  '_id'=>新的MongoId(“52818f9ad069feed198b4567”),
  'answers'=>数组(

'0' => 
       array (
              'by' => new MongoId("52818ec2d069fe90058b4567"),
              'content' => '<p>Ok, testing<br /> &nbsp;</p> ',
              'date' => new MongoInt32(1384222656),
             ),
'1' => 
             array (
               'by' => new MongoId("528192acd21b6310188b4567"),
               'content' => 'test',
               'date' => new MongoInt32(1384224360),
              ),   
     

),

删除第一项答案数组

  

阵列(
  '_id'=&gt;新的MongoId(“52818f9ad069feed198b4567”),
  'answers'=&gt;数组(

'1' => 
             array (
               'by' => new MongoId("528192acd21b6310188b4567"),
               'content' => 'test',
               'date' => new MongoInt32(1384224360),
              ),   
     

),

我的结果需要

  

阵列(
  '_id'=&gt;新的MongoId(“52818f9ad069feed198b4567”),
  'answers'=&gt;数组(

'0' => 
             array (
               'by' => new MongoId("528192acd21b6310188b4567"),
               'content' => 'test',
               'date' => new MongoInt32(1384224360),
              ),   
     

),

我的英语非常糟糕,但请帮助我!

1 个答案:

答案 0 :(得分:0)

使用$db.collection.update( {array('_id' => new MongoId("52818f9ad069feed198b4567")), array( $unset=> array( '0'=> true ) ) ) 使用$db.collection.update( {array(), array( $unset=> array( '0'=> true ) ) )

对每个文档进行相同的修改。