2015-08-14 61 views
1

我想查詢一個集合;獲取結果對象,然後我想克隆文檔並將其保存到同一個集合中。克隆一個文件mongoengine

scenario = ModelScenarios.objects(pk=scenario_id).clone() 
obj = scenario.update(ScenarioName=data['ScenarioName']) 

這只是更新現有的文件,但它不會複製並應用新的數據?這個怎麼做?

+0

你忘了[保存() ](http://docs.mongoengine.org/en/latest/apireference.html?highlight=save#mongoengine.Document.save) –

+0

當我做obj.save()它說'AttributeError:'BaseQuerySet'對象沒有屬性'保存' – PyAn

+0

我不知道。 –

回答

1

MongoEngine文檔中沒有clone方法。用你的代碼,你克隆了QuerySet,它允許你獲取文檔,而不是文檔本身。

你應該使用在QuerySetget方法首先獲得文檔:

scenario = ModelScenarios.objects.get(pk=scenario_id) 

,然後作出一個副本,如所描述here

from copy import deepcopy 
obj = deepcopy(scenario) 
obj.id = None 
obj.ScenarioName = data["ScenarioName"] 
obj.save()