在Python mongoengine模型中只保存一个字段

时间:2012-08-28 17:08:20

标签: python mongodb mongoengine

我遇到的问题是只有一个字段在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='myrtlewilliams@gmail.com', phone='1234567890', title='president', message='asdfsadf')
>>> contact.save()

然后,在mongo中,我查询并且我看到的是一个保存字段“message”的文档:

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

为什么其他字段没有保存?

2 个答案:

答案 0 :(得分: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" : "myrtlewilliams@gmail.com" 
}

您最有可能遇到与旧版本的mongoengine相关的问题。

答案 1 :(得分:0)

您的测试代码看起来很好,MongoEngine也有类似的测试用例,确保在我加入项目之前的0.4天内。

我可以想到不同数据的两个可能原因:

  1. 您在数据库中拥有旧的测试数据 - 来自之前版本的Contact
  2. 您正在执行以下操作中描述的文档中不同定义的文档:
    from Contact import Contact