php mongodb-can';我不能在工作中爬起来

php mongodb-can';我不能在工作中爬起来,php,mongodb,Php,Mongodb,我正在运行下面的代码,它工作得很好,如果没有记录,它会创建一个新的记录。我要做的是修改这个查询,使“v”字段也增加+1,但我没有任何运气。有人能帮我吗 $result = $collection->update( array('k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR'])), array('$set'=>

我正在运行下面的代码,它工作得很好,如果没有记录,它会创建一个新的记录。我要做的是修改这个查询,使“v”字段也增加+1,但我没有任何运气。有人能帮我吗

            $result = $collection->update(
                array('k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR'])),
                array('$set'=>
                    array(
                        'k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR']),                                                                   'st'=>SITE_ID, 
                        'ur'=>$_GET['u'],                                                
                        'ts'=>time(),
                        'dt'=>date('Ymd'), 
                        'ur'=>$_GET['p'],
                        'v'=>1
                    ),
                    array(
                        '$inc' => array('v' => 1)
                    ),
                ),
                array('upsert'=>true)
            );

您可以使用$inc修饰符liek:

{ $inc : { field : value } }
因此,在你的情况下:

$result = $collection->update(
    array('k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR'])),
    array('$set'=>
        array(
            'k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR']),                                                                   'st'=>SITE_ID, 
            'ur'=>$_GET['u'],                                                
            'ts'=>time(),
            'dt'=>date('Ymd'), 
            'ur'=>$_GET['p'],
            array('$inc' => array('v' => 1))
        ),
    ),
    array('upsert'=>true)
);
我刚才看到你实际上在使用这个字段,尽管上面的例子应该可以


PHP文档中有一个示例:

$set
$inc
放在一个对象中:

$result = $collection->update(
    array('k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR'])),
    array(
        '$set'=> array(
                'k'=>md5(SITE_ID.'-'.$_SERVER['HTTP_X_FORWARDED_FOR']),                                                                   'st'=>SITE_ID, 
                'ur'=>$_GET['u'],                                                
                'ts'=>time(),
                'dt'=>date('Ymd'), 
                'ur'=>$_GET['p']
            ),
        '$inc' => array('v' => 1)
    ),
    array('upsert'=>true)
);