如何将数据添加到mongo集合中

时间:2013-09-07 05:30:24

标签: mongodb

我有跟随mongo集合结构

{
 "_id" : ObjectId("52204f5b24c8cbf03ca16f8e"),
 "Date" : 1377849179,
 "cpuUtilization" : 31641,
 "memory" : 20623801,
 "hostId" : "600.6.6.6"
}

在上面的集合中,我有1000个hostId,每个hostId每5分钟产生一次cpuutilization和内存。所以任何人都建议我将我的数据放入单个集合中,或者使用hostId创建单独的1000个集合,如集合名称为100.1.12.2,101.2.10.1 .... 我还希望对集合进行索引以搜索记录。

2 个答案:

答案 0 :(得分:0)

从您共享的结构中,将数据放入单独的记录中是一个明智的选择,因为内存和cpuUtilization总是不同的。此外,如果在“日期”字段中存储时间戳,则总是会有所不同。

如果单独存储记录,查询数据库会容易得多,也可以避免使用聚合,这样可以通过使用适当的索引来提高查询性能。

所以你的记录应如下所示: {“_ id”:ObjectId(“someID1”),“Date”:1377849179,“cpuUtilization”:31641,“memory”:20623801,“hostId”:“600.6.6.6”} {“_ id”:ObjectId(“someID2”),“Date”:1377849210,“cpuUtilization”:20141,“memory”:28787801,“hostId”:“600.6.6.6”}

答案 1 :(得分:0)

一个集合足以存储信息。您必须注意的一个想法是写性能,因为mongodb在数据库级别写入时会锁定,Write可能会很慢。我可以给出一个建议,有两个或三个数据库,它将保存特定范围的主机的集合。它可以帮助您更快地编写。 从版本2.2开始,MongoDB在每个数据库的基础上实现了大多数读写操作的锁定。