如何在MongoDB 5.0的$project阶段使用新的$getField运算符
要投影名称包含.的顶级字段,不能直接使用常规的"字段名": 1写法,因为MongoDB会默认将.识别为嵌套字段的分隔符,尝试查找嵌套结构内的字段,此时需要用$getField运算符明确指定要读取的完整字段名。
具体的聚合语句写法如下:
db.你的集合名.aggregate([ { $project: { // 不需要返回_id字段的话可以保留下行配置,需要的话删除即可 _id: 0, "price.usd": { $getField: "price.usd" } } } ])
执行后返回的结果如下:
{ "price.usd" : 45.99 } { "price.usd" : 499.99 } { "price.usd" : 199.99 }
注意:该写法仅适用于MongoDB 5.0及以上版本,更低版本既不支持包含
.或以$开头的键名,也不支持$getField运算符。
内容的提问来源于stack exchange,提问作者Loránd Péter
相关产品推荐
相关产品推荐

