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