【发布时间】:2012-06-09 05:53:27
【问题描述】:
我的数据库中有这个对象。
Array(
[_id] => MongoId Object
(
[$id] => 4fcdb3b8749d786c03000002
)
[email] => foo@bar.com
[folder] => Array
(
[root] => Array
(
[feeds] => Array
(
[0] => Array
(
[feedID] => MongoId Object
(
[$id] => 4fcdaa9e749d786c03000001
)
[title] => title.com
)
)
[title] => root
)
)
[status] => 1
[username] => foouser)
我只想从 [feeds] 中提取项目 [0]。 我使用此代码,但它不起作用:
$usersCollection->update(array("username" => "foouser"), array('$pull'=> array('folder'=>array('root'=>array('feeds'=>array('feedID'=>$id))))));
当我使用这个 $unset 而不是 $pull 时,满的 [folder] 将会消失。
【问题讨论】:
-
只是猜测,但您的
$id是字符串还是正确的 MongoID?即$real_id = new MongoId("$id");?? php.net/manual/en/mongoid.construct.php -
是MongiID,没问题。我也不能用这个拉根: $usersCollection->update(array("username" => "foouser"), array('$pull'=> array('folder'=>'root')));