1

我遇到了一个问题,即只有一个字段保存在 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 中,我查询,我看到的只是一个保存了“消息”字段的文档:

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

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

4

2 回答 2

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 的旧版本之一相关的问题。

于 2012-08-28T17:21:16.203 回答
0

您的测试代码看起来不错,并且 MongoEngine 已经有类似的测试用例确保它从我在 0.4 天加入项目之前开始。

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

  1. 您在数据库中有旧的测试数据 - 来自以前版本的Contact
  2. 您正在导入与执行时描述的文档不同定义的文档:
    from Contact import Contact
于 2012-09-03T15:25:44.340 回答