mongodb aggregate $project 命令

一看这单词,首先想到是“项目”的意思,但是在这个命令里面却是另外的意思

大师兄

使用"$project"可以从文档中提取字段,可以重命名字段

最简单的一个"$project"操作是从文档中选择想要的字段。可以指定包含(1)或者不包含(0)一个字段

db.test.aggregate({"$project":{"username":1,"_id":0}})

默认情况下,如果文档中存在"_id"字段,这个字段就会被返回。(这个我在robomongo里面运行截图。。。)

大师兄

可以字段进行重命名

可以将每个用户文档的"_id"在返回结果中重命名为"userId"

大师兄

这里的"$fieldname"语法是为了在聚合框架中引用fieldname字段(上面的例子中是"_id")的值。 例如,"$age"会被替换为"age"字段的内容(可能是数值,可能是字符串), "$tag.3"会被替换为tags数组中的第4个元素。 所以,上面例子中的"$_id"会被替换为每个文档的"_id"字段的值。 需要明确指定将"_id"排除,否则这个_id字段的值肯定会被返回的,就像我这截图似的。