MongoAlchemy:两种不同的DocumentField之一

时间:2016-10-28 10:17:35

标签: python pymongo mongoalchemy

使用MongoAlchemy,是否可以拥有一个可以是两种类型之一的DocumentField? E.g:

strict-math

我想到了一些可行的选项:

  • class A(Document): foo = StringField() class B(Document): bar = StringField() class C(Document): child = DocumentField(A or B) A一个共同的父母,然后B
  • 编写一个覆盖child = DocumentField(CommonParent)的自定义Field,但更改验证程序以搜索类型列表,而不是一个。
  • 只需使用DocumentField即可。有点打败了这一点。

但是想知道它是否已经完成了?

1 个答案:

答案 0 :(得分:0)

有一个我从未合并过的分支(虽然我确实使用了一段时间),我实现了多态类型:

https://github.com/jeffjenkins/MongoAlchemy/tree/poly-queries

如果您愿意做一些错误修复,这是一个不错的选择。

否则,最简单的方法是实现自定义字段。我怀疑创建一个常规字段可能更容易,该字段将try列表作为输入,这可以区分而不是混淆DocumentField(这是多态分支所做的,但更复杂)。 / p>