是否可以重命名 PyMongo 中 Mongo 查询输出中的字段?
Posted
技术标签:
【中文标题】是否可以重命名 PyMongo 中 Mongo 查询输出中的字段?【英文标题】:Is it possible rename fields in the outputs of a Mongo query in PyMongo? 【发布时间】:2013-01-05 22:49:12 【问题描述】:我在 Mongo 中有一些文档:
"name" : "John", "age" : 26
"name" : "Paul", "age" : 34
"name" : "George", "age" : 36
还有另一个需要表单文档的函数:
"name" : "XXX", "value" : YY
是否可以在 PyMongo 的查找查询中将“年龄”字段重命名为“值”?
【问题讨论】:
我知道这不是所要求的,但是当您可以通过简单的 Python 代码查询 MongoDB 后重命名字段时,为什么要以依赖于 MongoDB 的方式这样做呢?您甚至可以使用生成器表达式保留迭代器语义:return ("name": doc["name"], "value": doc["age"] for doc in collection.find()) @MichaelKorbakov 我建议原因是速度。 Mongo 可能会更快地重命名数据中的字段 【参考方案1】:我会将aggregate
方法与$project
运算符一起使用。
来自 mongodb 网络文档。
您也可以使用 $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(),也有投影方式,但是发现不支持重命名以上是关于是否可以重命名 PyMongo 中 Mongo 查询输出中的字段?的主要内容,如果未能解决你的问题,请参考以下文章