在团体方面,美元符号在mongodb中意味着什么?

问题描述 投票:14回答:3

根据文档,“$”保留给运营商。但是,如果查看组运算符,则值必须以美元为前缀。这些值不是运算符。那么在这种情况下它意味着什么呢?示例如下:

db.article.aggregate(
    { $group : {
        _id : "$author",
        docsPerAuthor : { $sum : 1 },
        viewsPerAuthor : { $sum : "$pageViews" }
    }}
);

为什么pageView需要一个领先的美元符号?我在当地尝试过,没有美元符号就行不通。

mongodb
3个回答
7
投票

当您要引用原始文档或中间文档中的字段时,可以使用$field-name格式。在这里,您要总结所有按作者分组的页面浏览量。


16
投票

在这种情况下,“$ string”表示您要在已处理文档中使用名为“string”的键的值。与“string”形成对比,后者是一个文字字符串。


2
投票

$<field> is short for $$CURRENT.<field>

“$”相当于“$$ CURRENT”。其中CURRENT是一个系统变量,在大多数阶段默认为当前对象的根,除非在特定阶段另有说明。 CURRENT可以反弹。

而且,"Unless documented otherwise, all stages start with CURRENT the same as ROOT."

最后:

ROOT:引用根文档,即顶级文档,当前正在聚合管道阶段进行处理。” Reference: System Variables

ROOT,因此CURRENT,是被分组的文件,$<field>访问CURRENT的财产。

注意:

CURRENT是可修改的。然而,由于$<field>相当于$$CURRENT.<field>,重新绑定CURRENT改变了$访问的含义。“Reference: System Variables

© www.soinside.com 2019 - 2024. All rights reserved.