MongoDB Map在PHP中减少

时间:2015-01-28 02:07:19

标签: php mongodb

我正在尝试将此问题中提供的答案(Map Reduce Approach)改编为php:

Does MongoDB's $in clause guarantee order

这是我所做的,没有错误,但我没有收到任何结果:

$items = array('523fe7e00000000000000000', '5230e7e00000000000000000', '5240e1e00000000000000000');

$items_converted = array();
foreach($items as $an_item){
    $items_converted[] = new MongoID($an_item);
}

$map = new MongoCode('
    function () {
        var order = inputs.indexOf(this._id);
        emit( order, { doc: this } );
    }
');
$finalize = new MongoCode('
    function (key, value) {
        return value.doc;
    }
');
$results = $db->command(array(
    'mapreduce' => 'template_items',
    'map' => $map,
    'out' => array('inline' => 1),
    'query' => array('_id' => array('$in' => $items_converted)),
    'scope' => array('inputs' => $items_converted),
    'finalize' => $finalize
));

foreach($results as $row){
    echo $row['title'];
}

这样做的主要目的是按照包含ID的数组的确切顺序对结果进行排序。我可以让它在命令行中工作,只是在将它调整到php时遇到了麻烦。

0 个答案:

没有答案