2017-02-21 18 views
1

のmongoコマンドラインから次のコマンドの作品:のMongoDB - PHP - サポートされていない投影オプション

db.users.aggregate([ 
    {'$match': 'eventDate': 
     {$gte: ISODate("2015-01-01T00:00:00.0Z"), 
     $lte: ISODate("2017-01-01T00:00:00.0Z")} 
    }, 
    {'$project' : 
     {'year' : 
      { $year: '$eventDate' } 
     } 
    } 
]) 

が、これはPHPと同等でなければなりません:

$mongoConnection = new \MongoDB\Driver\Manager(); 
$collection = 'test.users'; 
$query = new \MongoDB\Driver\Query(
    ['eventDate' => array('$gte' => ISODate("2015-01-01T00:00:00.0Z, '$lte' => ISODate("2017-01-01T00:00:00.0Z)], 
    ['projection' => ['year' => [ '$year' => '$eventDate' ]]]] 
); 
$cursor = $mongoConnection->executeQuery($collection, $query); 

が、私は得る:サポートされていない投影オプションを:年:{$ year: "$ eventDate"}

クエリの「投影」部分を削除すると正しく実行されます。私はエラーを調査したが、唯一の答えは「投影フィールドの名前は$で始まらない」ということでした。

{$ year: "$ eventDate"}の組み合わせをすべて試しましたが、まだサポートされていない投影オプションのエラーが表示されます。

おかげ

+0

あなたは「$ first.eventDate」を実行しようとしましたか? –

+0

動作しません。 : –

+0

年=> 1?私はマングースで何をしているのですか?数字だけを入れてください(0は表示されず、1は表示されます) –

答えて

関連する問題