php mongodb – 无法获得upsert工作

我正在运行以下代码并且它运行良好,如果不存在记录,则会创建一个代码.我要做的是修改这个查询,以便’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)
            );

解决方法:

将$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)
);

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结