Я пытаюсь сохранить документ MongoEngine в динамический документ. Пример кода выглядит следующим образом:
class Small(mongoengine.Document):
var_1 = mongoengine.IntField(db_field="var_1")
var_2 = mongoengine.IntField(db_field="var_2")
class Main(mongoengine.DynamicDocument):
timeseries = mongoengine.ListField(mongoengine.EmbeddedDocumentField('Small'),
db_field="timeseries")
def sample_insert():
input = [(2, 4), (2, 6), (3, None), (4, None)]
to_insert = [Small(var_1=i[0], var_2=i[1]) for i in input]
self.timeseries = to_insert
self.save()
Проблема, с которой я сталкиваюсь, возникает, когда одно или несколько сохраняемых значений равны None. В этом случае возникает следующая ошибка:
mongoengine.errors.ValidationError: ValidationError (Data:55c0d57d1853bcad5c17b1f7) (var_1.Field is required)
Я мог бы установить значения None равными 0, но это не очень хорошее решение, поскольку я больше не могу различать законные значения 0 и несуществующие значения.
Что бы я хотел сделать, так это иметь возможность вставлять эти значения None как «нулевую» запись в MongoDB.
Это возможно?