日期:2014-05-17  浏览次数:20372 次

请教php高手!关于mongodb的应用问题!
mongodb某一库中有一集合ids,其中的原始数据为db.ids.insert({'name':'user','id':0})
我想通过下面的方法实现一个自增长的id。代码如下:

PHP code

public static function autoId($name, $db){
    $update = array('$inc'=>array('id'=>1));
    $query = array('name'=>$name);
    $command = array('findAndModify'=>'ids', 'update'=>$update,'query'=>$query, 'new'=>true);
    echo json_encode($command)."<br/>";//输出1
    $id = $db->command($command);
    echo json_encode($id)."<br/>";//输出2
    return $id['value']['id'];
}



调用该方法并不能实现目标。输出结果为:
输出1: {"findAndModify":"ids","update":{"$inc":{"id":1}},"query":{"name":"user"},"new":true}
输出2: {"errmsg":"no such cmd","bad cmd":{"findAndModify":"ids","update":{"$inc":{"id":1}},"query":{"name":"user"},"new":true},"ok":0}

请问这是怎么回事?会不会是mongo的版本问题?

------解决方案--------------------
没用过mongodb。不知是个什么情况。
------解决方案--------------------
你的mongodb版本是?
http://www.mongodb.org/display/DOCS/findAndModify+Command

看文档是v1.3以上才支持