mongoengine 获取自定义主键出错

# Issue

model 中自定义主键,是为某个 field 添加 primary_key 属性,mongoengine 会把该字段作为 _id 存储。此时通过 obj.fieldobj.id 都可获取到该字段,但是实际查询的时候使用 obj.id 方法会出错,例如:

MyObject.objects.get(id=1)

# Solution

根据官方文档,设置属性 primary_key=True 后,可用 pk 来获取该字段,实际上 primary 也是可用的,所以

MyObject.objects.get(pk=1)
MyObject.objects.get(primary=1)

这两种查询都是可行的

推荐阅读更多精彩内容