文章目录
$getField聚合运算符返回文档中指定字段的值,字段名可以包含点.或以$开头。如果不指定,$getField将$$CURRENT作为字段返回。
语法
{
$getField: {
field: <String>,
input: <Object>
}
}
字段说明:
- field,字符串类型,指定数据对象中要返回的字段,可以是字符串表达式,如果字段以
$符号开头,则需要把字段名放在$literal表达式返回。 - input,对象类型,缺省值为
$$CURRENT,可以是一个包含了指定字段值的表达式,input必须要能解析为一个对象、缺失、空或未定义,如果省略,默认为当前管道中处理的文档$$CURRENT。
从$$CURRENT返回字段值的简单写法如下:
{
$getField: <String>
}
使用
- 如果
field不是字符串类型,$getField返回错误 - 如果
input对象中不存在field或者未指定input时$$CURRENT不不存在field字段,$getField返回missing - 如果
input计算结果为missing、undefined或null,$getField返回null - 如果
input计算结果不是对象、missing、undefined或null,则$getField返回错误 $getField不会隐式遍历对象或数组,例如:$getField执行时会将field为a.b.c认为是a.b.c而不是嵌套字段{a:{b:{c}}}
举例
包含点号(.)的查询
inventory集合的内容如下:
{
"_id" : 1, "item" : "sweatshirt", "price.usd": 45.99, qty: 300 }
{
"_id" : 2, "item" : "winter coat", "price.usd": 499.99, qty: 200 }
{
"_id" : 3, "item" : "sun dress", "price.usd": 199.99, qty: 250 }
{
"_id" : 4, "item" : "leather boots", "price.usd": 249.99, qty: 300 }
{
"_id"

最低0.47元/天 解锁文章
1745

被折叠的 条评论
为什么被折叠?



