【问题标题】:How to convert mongoDB query into PHP?如何将 mongoDB 查询转换为 PHP?
【发布时间】:2016-07-22 11:01:51
【问题描述】:

我的查询在 mongodb 中运行并正确生成输出。但是我尝试使用 php 运行相同的查询然后它给出了以下错误

Array
    (
        [ok] => 0
        [errmsg] => A pipeline stage specification object must contain exactly one field.
        [code] => 16435
    )

以下是我的 MongoDB 查询

db.sample_coll.aggregate(
{
  $unwind: {
        path:"$KeyValues", 
        includeArrayIndex:"arrayIndex", 
        preserveNullAndEmptyArrays:true 
    }
},
{
  $project: {
        timestamp:{ 
          "$add":["$EventTS",{"$multiply":[60000,"$arrayIndex"]}] 
        } ,
        "InputVolt":"$KeyValues.InputVolt", 
        arrayIndex:1
        }
},
{
  $match: {
    $and: [ 
        {InputVolt: {$ne: null}}
    ]
  }
}
); 

上面的查询是用php转换的

$pipeline = array(
            array('$unwind' => 
                    array( 'path' => '$KeyValues'),
                    array( 'includeArrayIndex' => 'arrayIndex' ), 
                    array( 'preserveNullAndEmptyArrays' => 'true' )
            ),
            array(
                '$project' => array(
                    'timestamp' => array(
                        '$add' => array(
                            '$EventTS',
                            array('$multiply' => array( 60000, '$arrayIndex' )) 
                        )
                    ),
                    array( 'InputVolt' => array( '$KeyValues', 'InputVolt'   ) ) ,
                    array('arrayIndex' => 1)
                )
            ),
            array(
                '$match' => array(
                    '$and' => array(
                        array('InputVolt' => array('$ne' => null )),
                    )
                )
            )

);
$result = $collection->aggregate($pipeline);

请帮助解决此问题。 提前致谢

【问题讨论】:

    标签: php mongodb mongodb-query


    【解决方案1】:

    您在 PHP 中的管道:

    $pipeline = array(
            array('$unwind' => array(
                'path' => '$KeyValues',
                'includeArrayIndex' => 'arrayIndex',
                'preserveNullAndEmptyArrays' => true
            )),
            array('$project' => array(
                'timestamp' => array(
                    '$add' => array('$EventTS', array('$multiply' => array(60000, '$arrayIndex')))
                ),
                'InputVolt' => '$KeyValues.InputVolt',
                'arrayIndex' => 1
            )),
            array('$match' => array(
                'InputVolt' => array('$ne' => null)
            ))
        );
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2011-05-23
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多