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显示的更简洁
更好,更容易讓人理解。