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

use*_*123 19 mongodb

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

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

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

Asy*_*sky 21

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


Ara*_*ram 9

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


Car*_*l G 5

$<field>的缩写$$CURRENT.<field>

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

而且,“除非证明,否则所有阶段开始CURRENT一样ROOT。”

最后:

ROOT:引用当前在聚合管道阶段正在处理的根文档,即顶级文档。” 参考:系统变量

ROOT,因此CURRENT,是正在分组的文档,并且$<field>访问的属性CURRENT

注意事项

CURRENT是可修改的。但是,由于$<field>等效于$$CURRENT.<field>,所以重新绑定会CURRENT更改$访问的含义。” 参考:系统变量