2012-08-28 94 views
1

我有一個問題,只有一個字段被保存在mongoengine模型上。只有一個字段被保存在Python mongoengine模型中

下面是類的定義:

from mongoengine import * 

connect('leads') 

class Contact(Document): 
    name = StringField() 
    email = StringField() 
    phone = StringField() 
    company = StringField() 
    title = StringField() 
    message = StringField() 

在Python終端,我跑:

>>> from Contact import Contact 
>>> contact = Contact(name='myrtle williams', email='[email protected]', phone='1234567890', title='president', message='asdfsadf') 
>>> contact.save() 

然後,在蒙戈,我查詢和所有我看到的是與現場的文檔「消息「保存:

{ 
    "_id" : ObjectId("503cfa86d0d9b317a258e136"), 
    "_types" : [ 
     "Contact" 
    ], 
    "message" : "asdfsadf", 
    "_cls" : "Contact" 
} 

爲什麼沒有保存其餘的字段?

回答

3

我試着運行你的代碼,它適用於我(mongodb 1.8.2,mngoengine 0.6.20,pymongo 2.2.1)。

{ 
    "_id" : ObjectId("503cfceb6cb71a38d4a4cd4e"), 
    "_types" : [ "Contact" ], 
    "name" : "myrtle williams", 
    "title" : "president", 
    "phone" : "1234567890", 
    "_cls" : "Contact", 
    "message" : "asdfsadf", 
    "email" : "[email protected]" 
} 

最有可能你遇到了有關mongoengine的舊版本中的一個問題。

+0

我用的是:MongoDB的2.0.7,mongoengine 0.6.18和2.2.1 pymongo時做說明。升級mongoengine 0.6.20現在節省了一些更多的領域,但不是全部。 –

+0

@OvedD哪些字段丟失?如果您的意思是*公司*,*聯繫人=聯繫人(...)*呼叫中缺少該公司。 –

0

您的測試代碼看起來不錯,MongoEngine也有類似的測試用例,確保它在0.4天內加入項目之前就已確定。

我能想到的不同的數據可能有兩個原因:

  1. 您在數據庫中有舊的測試數據 - 從以前版本的Contact
  2. 您從一個導入不同的定義文件
    from Contact import Contact