[英]Structuring MongoDb Collections for a tracking system
我需要构建一个系统来跟踪我们所有网站中的用户。
每个访问我们网站的新用户都将获得一个ID,该ID将存储在Cookie中。
对于网站上的每个活动,我们都希望保存相关数据。
例如,当用户注册时,我们将公开一个用于将活动添加到数据库的api。 稍后,我们将对数据进行后端报告。
我们尚未决定采用哪种技术,但我们假设我们将使用nodejs + express +猫鼬。
我们相信第一个集合(请参见下面的内容)每月将有600万行。 其他集合可能只有一半。
我不知道以下数据结构在mongodb中是否能正常工作。
Id
mongo ObjectId-生成的最终将是cookie ID。 Referer
字符串(完整查询字符串uri的长度) LandingUrl
字符串(完整查询字符串uri的长度) DateTime
Params
-KeyValue数据,它是从LandingUrl
解析的数据,假定是嵌套的json树。 LandingUrl
是http://s.com?a=1&b=2&c=3
,则参数将为: params : {a:'1',b:'2',c:'3'}
Id
mongo ObjectId SessionId
- SessionCollection
“外键” ActivityType
简短的免费字符串 DateTime
ActivityData
免费的KeyValue数据(类似于上面的说明)。 当我说所有我的意思是全部时,都可以在所有字段中搜索这两个集合。
谢谢
我将回答#4,因为这是一个有趣的问题,没有明显的答案。
可以在mongodb中为完整的URL编制索引吗?
答案是大部分时间,但不是所有时间。
说明:URL不能总是在MongoDB中建立索引,因为MongoDB对索引的长度(1024个字节)有限制。 如果长度大于该长度,则不会被索引或可能会出错(取决于版本和大小写)。 完整的URL可能会超过此限制(因为几乎所有浏览器都支持至少2000个字符)。 如果您有这么长的URL的可能性,一种解决方案是对索引使用哈希方法。
有关MondoDB限制及其如何处理大于1024字节的索引的更多信息(行为从2.6及更高版本发生了显着变化),请参见https://docs.mongodb.org/manual/reference/limits/
有关URL的长度,请参见不同浏览器中URL的最大长度是多少?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.