gpt4 book ai didi

python - 是否可以动态添加结构中不存在的字段?

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:16 24 4
gpt4 key购买 nike

我正在尝试 mongokit,但遇到了问题。我认为可以动态添加架构中不存在的字段,但显然我无法保存文档。

代码如下:

from mongokit import *

connection = Connection()

@connection.register
class Test(Document):
structure = {'title': unicode, 'body': unicode}

在 python shell 上:

test = connection.testdb.testcol.Test()
test['foo'] = u'bar'
test['title'] = u'my title'
test['body'] = u'my body'
test.save()

这给了我一个

StructureError: unknown fields ['foo'] in Test

我有一个应用程序,虽然我有一个始终存在的核心字段,但我无法事先预测需要哪些新字段。基本上,在这种情况下,由客户端来插入它认为必要的字段。我只会接收他发送的任何内容,做我的事情,并将它们存储在 mongodb 中。

但是仍然有一个所有文档都通用的核心字段,因此最好输入并验证它们。

有没有办法用mongokit解决这个问题?

最佳答案

根据MongoKit structure documentation如果您使用无模式结构功能,则可以有可选字段。

As of version 0.7, MongoKit allows you to save partially structured documents.

所以如果你像这样设置你的类,它应该可以工作:

from mongokit import *
class Test(Document):
use_schemaless = True
structure = {'title': unicode, 'body': unicode}
required_fields = [ 'title', 'body' ]

这将需要 titlebody 但应该允许存在任何其他字段。根据文档:

MongoKit will raise an exception only if required fields are missing

关于python - 是否可以动态添加结构中不存在的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com