是否可以重命名 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 查询输出中的字段?的主要内容,如果未能解决你的问题,请参考以下文章

pymongo模块

如何使用 pymongo 重命名 mongodb 数据库?

如何使用 pymongo 在 mongodb 中重命名父字段名称和嵌套字段值?

如何在 pymongo 中使用 mongo 函数?

您可以在 PyMongo 中更新的文档数量是不是有上限?

pymongo bugfix后记