demo->so; $c->insert( array( '_id' => new MongoId( "4fcdb3b8749d786c03000002"), 'email' => 'foo@bar.com', 'folder' => array( 'root' => array( 'feeds' => array( array( 'feedId' => new MongoId("4fcdaa9e749d786c03000001"), 'title' => 'title.com', ), array( 'feedId' => new MongoId("4fcdaa9e749d786c03000002"), 'title' => 'title.com/the2nd', ), ), 'title' => 'root', ) ), 'status' => 1, 'username' => 'foouser', ) ); $c->update( array( 'username' => 'foouser' ), array( '$pull' => array( 'folder.root.feeds' => array( 'feedId' => new MongoId('4fcdaa9e749d786c03000001'), 'title' => 'title.com', ) ) ) ); var_dump( $c->findOne( array( 'username' => 'foouser' ) ) );