根据文档,"$"保留给运营商.但是,如果查看组运算符,则值必须以美元为前缀.这些值不是运算符.那么在这种情况下它意味着什么呢?示例如下:
db.article.aggregate(
{ $group : {
_id : "$author",
docsPerAuthor : { $sum : 1 },
viewsPerAuthor : { $sum : "$pageViews" }
}}
);
Run Code Online (Sandbox Code Playgroud)
为什么pageView需要一个领先的美元符号?我在当地尝试过,没有美元符号就行不通.
“ $”等效于“ $$ CURRENT”。其中CURRENT是一个系统变量,在大多数阶段中默认为当前对象的根,除非在特定阶段中另有说明。电流可以反弹。
而且,“除非证明,否则所有阶段开始CURRENT
一样ROOT
。”
最后:
“
ROOT
:引用当前在聚合管道阶段正在处理的根文档,即顶级文档。” 参考:系统变量
即ROOT
,因此CURRENT
,是正在分组的文档,并且$<field>
访问的属性CURRENT
。
注意事项:
CURRENT
是可修改的。但是,由于$<field>
等效于$$CURRENT.<field>
,所以重新绑定会CURRENT
更改$
访问的含义。” 参考:系统变量
归档时间: |
|
查看次数: |
10652 次 |
最近记录: |