在PyMongo中,是否可以重命名Mongo查询的输出字段?

13

我在Mongo中有一些文件:

{"name" : "John", "age" : 26}
{"name" : "Paul", "age" : 34}
{"name" : "George", "age" : 36}

还有另一个函数,它期望的文档形式为:

{"name" : "XXX", "value" : YY}

在PyMongo中,是否可以将“age”字段重命名为“value”并在查找查询中使用?


1
我知道这不是被要求的方式,但为什么要以MongoDB依赖的方式来做呢?当你可以通过简单的Python代码在查询MongoDB后重命名字段时。你甚至可以使用生成器表达式来保留迭代器语义:return ({"name": doc["name"], "value": doc["age"]} for doc in collection.find()) - Michael Korbakov
@MichaelKorbakov 我建议的原因是为了速度。Mongo 在重命名数据字段方面可能会更快。 - Brendan Maguire
1个回答

19

我会使用$project运算符和aggregate方法。

来自MongoDB Web文档。

您还可以使用$project重命名字段。考虑以下示例:

db.article.aggregate(
 { $project : {
     title : 1 ,
     page_views : "$pageViews" ,
     bar : "$other.foo"
 }} );`

例如

db.mycol.aggregate({ $project : { name:1, value:"$age" }});

请查看http://docs.mongodb.org/manual/reference/aggregation/#_S_project


find()方法也有投影(projection)的功能,但我发现它不支持重命名(rename)。 - Leo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接