使用MongoEngine自动增量

Mah*_*sam 2 python mongodb mongoengine

我正在使用Flask和MongoEngine开发一个博客引擎,我的帖子需要顺序ID.

我需要MongoEngine为每个新帖子创建一个新的ID,所以我想做这样的事情:

class Post(Document):
  title = StringField(required=True)
  content = StringField(required=True)
  published_at = datetime.utcnow()
  id = Post.objects.count() + 1
Run Code Online (Sandbox Code Playgroud)

这会有用吗?有一个更好的方法吗?

Ros*_*oss 11

首先,您需要了解为什么需要增量ID?他们解决了什么?

在mongoDB中没有本机解决方案 - 请阅读:http://www.mongodb.org/display/DOCS/How+to+Make+an+Auto+Incrementing+Field

由于您已经拥有pkPost 的唯一标识符,为什么不使用它?

最后,如果我没有劝阻你愚蠢,那么有一个SequenceFieldmongoengine可以处理你的增量.https://mongoengine-odm.readthedocs.org/en/latest/apireference.html#mongoengine.fields.SequenceField

  • 我想要帖子以及用户的增量ID,自动生成的ID不适合在URL中使用,这就是为什么我要创建自己的ID。 (2认同)