小编Ani*_*ish的帖子

MongoEngine抛出异常TypeError:无法深度复制此模式对象

我在使用list和regex查询查询mongodb模型(Python/MongoEngine)时遇到异常.代码是

from mongoengine import *
import re 

db = connect('testdb')

class Team(Document):
    name = StringField()
    groups = ListField(ReferenceField('Group'))

class Group(Document):
    name = StringField()

Team.drop_collection()
Group.drop_collection()

g1 = Group('G1')
g1.save()

g2 = Group('G2')
g2.save()

g3 = Group('G3')
g3.save()

g4 = Group('G4')
g4.save()

t = Team('Team1',[g1,g2,g3])
t.save()

t = Team('Team2',[g1,g2,g4])
t.save()

t = Team('Team3',[])
t.save()

t = Team('Team3',[g3,g2])
t.save()

t = Team('Team3',[g4,g1])
t.save()


# TypeError: cannot deepcopy this pattern object
teams = Team.objects( Q(groups__in=[g3,g2]) & Q(name=re.compile('eam3')))
for team in teams:
   print team.name …
Run Code Online (Sandbox Code Playgroud)

python regex deep-copy mongoengine

2
推荐指数
1
解决办法
1434
查看次数

标签 统计

deep-copy ×1

mongoengine ×1

python ×1

regex ×1