Следующая команда работает из командной Монго линии: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"} с или без $, но я все еще получаю ошибку параметра Неподдерживаемой проекции.
Благодаря
ли вы пытаетесь сделать «$ first.eventDate»? –
Не работает. :( –
year => 1? Вот как мы это делаем в мангусте. Просто поместите числа (0 для не показанных и 1 для показа) –