【问题标题】:Is it possible rename fields in the outputs of a Mongo query in PyMongo?是否可以重命名 PyMongo 中 Mongo 查询输出中的字段?
【发布时间】: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 可能会更快地重命名数据中的字段

标签: python mongodb pymongo


【解决方案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(),也有投影方式,但是发现不支持重命名
猜你喜欢
  • 2017-06-01
  • 2017-09-18
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
相关资源
最近更新 更多