有没有办法从mongoengine中存储的ListField中自动删除列表元数据?

Is there a way to automatically delete list metadata from stored ListField in mongoengine?

我目前在 python 中使用 mongoengine。当我存储一个带有列表变量的文档,然后我 "get" 它时,mongoengine 将一些元数据添加到列表中。我怎样才能摆脱元数据?

class Example(Document)
   key = StrinField(primary_key = True)
   lis1 = ListField()

lis2 = [1,2,3]

obj = Example(lis1 = lis2, key = "123")
obj.save()

obj0 = Example.objects.get(key = "123")
print(obj0.lis1)

>> Output is the list plus metadata like _dereferenced, _instance and _name

我的做法是将所有列表保存为序列化字符串,但是必须有更好的解决方案!

(此处为 MongoEngine 贡献者)MongoEngine 确实向列表中添加了一些元数据,它在幕后使用了内置 list class 的子 class。这些未存储在 MongoDB 中,它们允许 MongoEngine 处理自动取消引用或跟踪应用于文档实例的更改。它们应该对您的应用程序无害,因为它们可以作为标准 python 列表进行操作。

试图绕过它不是一个好主意,因为它是 MongoEngine 内部的一部分。