Ответ 1
Вы используете формат $field-name
, если хотите ссылаться на поле из оригинала или промежуточного документа. Здесь вы суммируете все просмотры страниц, группируя их по автору.
В соответствии с документами для операторов зарезервирован "$". Однако, если вы посмотрите на оператора группы, значения должны иметь префикс доллара. Эти значения не являются операторами. Что это значит в этом контексте? Пример ниже:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
Почему pageViews нужен главный знак доллара? Я пробовал его локально, и он не работает без знака доллара.
Вы используете формат $field-name
, если хотите ссылаться на поле из оригинала или промежуточного документа. Здесь вы суммируете все просмотры страниц, группируя их по автору.
В этом случае "$ string" означает, что вы хотите использовать значение ключа с именем "string" в обработанном документе. Контраст с "строкой", которая будет буквальной строкой.