我正在阅读关于如何在这里建立数据库评论系统的MongoDB教程.一条评论文件包含以下信息:
{
_id: ObjectId(...),
discussion_id: ObjectId(...),
parent_id: ObjectId(...),
slug: '34db/8bda'
full_slug: '2012.02.08.12.21.08:34db/2012.02.09.22.19.16:8bda',
posted: ISODateTime(...),
author: {
id: ObjectId(...),
name: 'Rick'
},
text: 'This is so bogus ... '
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法理解的是什么,slug
并且full_slug
是,不能从文档的理解.
对于我的观点,它看起来像某种URL快捷方式来获取注释,例如,当您键入时:http://site.com/34db/8bda
它将为您
带来注释本身,full-slug
用于在发布时对注释进行排序和排序.
基本上,只是“使用人类可读的关键字标识”对象的URL的“一部分”(请参阅Wikipedia“语义URL”)
在MongoDB用例文档“存储评论”中,每个评论都有一个唯一的简短“子部分”,可以将其视为一种替代的,独立于数据库的ID。slug
然后,通过将所有评论的所有子句部分与讨论线程层次结构链接在一起,以形成指向实际评论的路径,从而构建评论文档的字段。基本上,也可以通过加入以斜杠分隔的所有(父)注释的ID的字符串表示形式来构建它。但是那样的话,它将变得更长,更难以理解,并且在某种程度上更依赖于底层的MongoDB数据库。
该full_slug
字段的slug
格式如上所述,但每个子段部分均以其相关注释的创建日期和时间作为前缀。这似乎是必要的,或者至少有利于一次按讨论线程和日期执行排序的查询。该full_slug
字段仅用于实现按讨论主题和日期排序的查询。