【问题标题】:Codeigniter MongoDB wrapper not working with deleteCodeigniter MongoDB 包装器不适用于删除
【发布时间】:2012-02-09 14:31:45
【问题描述】:

我正在使用 Codeigniter 和 MongoDB(Alex Bilbie 包装器)开发 API,但我无法让删除功能正常工作。

它会删除我指定的文件以外的其他文件!快把我逼疯了。

这是我模型中的代码:

$where = array (

  '_id' => new MongoId ($args['id'])

);

$result = $this -> mongo_db -> delete ('files', $where);

怎么了?我的代码或包装器有问题吗?

感谢所有输入!

【问题讨论】:

    标签: codeigniter mongodb


    【解决方案1】:

    我相信你想要:

    $result = $this->mongo_db->where($where)->delete('files');
    

    不知道你从哪里得到你的语法——delete 没有用这样的两个参数定义的函数(至少在我一直使用的 codeigniter 包装器的版本中)。

    【讨论】:

    • 您使用的是什么包装器?在 Alex 的代码示例中缺少。
    • 我也在使用 Alex 的包装器。你得看代码:bitbucket.org/alexbilbie/codeigniter-mongo-library/src/… 搜索delete,你就会明白我的意思了。
    • 嗯,好的。好吧,这不是最新的回购。使用这个:github.com/alexbilbie/codeigniter-mongodb-library
    • 有趣,我猜 bitbucket 落后了几个月。好吧,如果你在那里寻找删除功能,仍然只有一个参数。正如我在示例中所示,您应该使用 where 进行操作。
    【解决方案2】:
    $where = array (
    
      '_id' => new MongoId ($args['id'])
    
    );
    
    $result = $this -> mongo_db -> where($where) -> delete_all('files');
    

    注意,如果需要根据嵌入的文档信息删除

    $result = $this -> mongo_db -> where(array('field.value'=>'x') -> delete_all('files');
    

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2020-04-14
      • 2014-03-03
      • 2018-07-28
      • 1970-01-01
      相关资源
      最近更新 更多