Flask+MongoDB做的一个网站,文章管理块,Mongodb中以ObjectId作的标识,当浏览指定文章时现在以ObjectId作为标识,url形式如下: /article/53219ebcbe238721a805d3fe/ ObjectId这截有没有好办法处理的更短,更优雅些?
看看这个:http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
ObjectId 12 字节共 96 比特信息量,使用 64 进制的话每位能提供 6 比特信息量,所以只需要 16 位 64 进制位。字母+数字共有 62 个字符,再找两个标点就可以了 :-)
可以使用数字自增id mongodb官方提供了自增id的解决方法,参看
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
主要原理是在数据库中新建了一个counter计数的collection,记录每个model的最大id,然后在save时更新id, 使用findAndModify中的$inc实现递增,$inc是原子操作。
新弄一个字段,用来存储ID,存储的时候,再截一下。
或者使用自订义的Slug。
如果是接口类的,因为不会直接显示到浏览器地址栏,所以直接用ObjectId吧。 如果是显示文章,用:http://web/article/MongoDB存储的数据,标识怎样在URL显示的更简洁更好,更容易让人理解。
http://web/article/MongoDB存储的数据,标识怎样在URL显示的更简洁
看看这个:http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
ObjectId 12 字节共 96 比特信息量,使用 64 进制的话每位能提供 6 比特信息量,所以只需要 16 位 64 进制位。字母+数字共有 62 个字符,再找两个标点就可以了 :-)
可以使用数字自增id
mongodb官方提供了自增id的解决方法,参看
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
主要原理是在数据库中新建了一个counter计数的collection,记录每个model的最大id,然后在save时更新id, 使用findAndModify中的$inc实现递增,$inc是原子操作。
新弄一个字段,用来存储ID,存储的时候,再截一下。
或者使用自订义的Slug。
如果是接口类的,因为不会直接显示到浏览器地址栏,所以直接用ObjectId吧。
如果是显示文章,用:
http://web/article/MongoDB存储的数据,标识怎样在URL显示的更简洁
更好,更容易让人理解。