Python Mongoengine整数id和用户创建
MongoDB使用字符串(散列)\ id字段而不是整数;那么,如何获取经典id主键呢?每次创建类实例时都要增加一些变量Python Mongoengine整数id和用户创建,python,django,mongodb,mongoengine,nosql,Python,Django,Mongodb,Mongoengine,Nosql,MongoDB使用字符串(散列)\ id字段而不是整数;那么,如何获取经典id主键呢?每次创建类实例时都要增加一些变量 class Post(Document): authors_id = ListField(IntField(required=True), required=True) content = StringField(max_length=100000, required=True) id = IntField(required=True, primary_
class Post(Document):
authors_id = ListField(IntField(required=True), required=True)
content = StringField(max_length=100000, required=True)
id = IntField(required=True, primary_key=True)
def __init__(self):
//what next?
mongoengine.queryset.OperationError: Tried to save duplicate unique keys
(E11000 duplicate key error index: test.user.$_types_1_username_1
dup key: { : "User", : "admin" })
2) 简单地说,您不能用同一用户名保存多个用户(错误消息告诉您),并且您已经有一个名为“admin”的用户。如果您想使用递增整数ID,请在此处介绍执行此操作的方法:
这对于大型数据库/应用程序来说无法扩展,但对于小型或中型应用程序来说效果很好。如果您想使用递增整数ID,下面介绍了执行此操作的方法:
这对于不同的大型数据库/应用程序来说无法扩展,但对于小型或中型应用程序来说效果很好。您可以使用
序列字段来提供此功能。但是如上所述,递增的id不能很好地扩展,它们真的需要吗?您不能使用ObjectId
或slug吗?您可以使用SequenceField
来提供此功能。但是如上所述,递增的id不能很好地扩展,它们真的需要吗?您不能使用ObjectId
或slug吗?1)您还有其他方法吗?我只是不想像site/post/50那样使用它是的,solvedgo用于内部生成的mogoid!如果您真的想使用增量ID,也可以切换到mysql;)您不需要锁定插入的整个集合,只需将递增键保留在其自己的集合中。请参阅我的链接答案。1)您还有其他方法吗?我只是不想像site/post/50那样使用它是的,solvedgo用于内部生成的mogoid!如果您真的想使用增量ID,也可以切换到mysql;)您不需要锁定插入的整个集合,只需将递增键保留在其自己的集合中。请参阅我的链接答案。将问题拆分为两篇帖子,因为它们不相关。将问题拆分为两篇帖子,因为它们不相关。谢谢!这将是我的小博客:)谢谢!这将是我的小博客:)哈哈,我不知道我怎么会错过它。非常感谢,这正是我真正需要的。好东西,别忘了把问题标记为已回答,以便将来帮助他人:)哈哈,我不知道我怎么会错过它。非常感谢,这正是我真正需要的。好东西,别忘了把问题标记为已回答,以便将来帮助他人:)
user = User.create_user(username='admin', email='example@mail.com',
password='pass')
user.is_superuser = True
user.save()