2013-01-22 25 views
11

我在蒙戈一些文件:是否可以在PyMongo的Mongo查詢的輸出中重命名字段?

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

和期望形式的文件,另一個功能:

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

是否有可能在找到「年齡」字段爲「value」重命名在PyMongo中查詢?

+1

我知道這是不是已經問過,但爲什麼它在MongoDB中依賴的方式時,你可以通過簡單的Python代碼查詢MongoDB的後場重命名?您甚至可以使用生成器表達式保留迭代器語義: return({「name」:doc [「name」],「value」:doc [「age」]} for collection in collection.find()}) –

+0

@邁克爾·科爾巴科夫我建議原因是速度。 Mongo在重命名數據 –

回答

17

我會使用aggregate方法與$project運算符。

從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

+0

find()中的字段時可能會更快,也具有投影方法,但我發現它不支持重命名 – Leo

+0

(https://docs.mongodb.org/manual/reference/operator /投影/位置/) – Leo

相關問題