【发布时间】:2012-03-26 15:23:32
【问题描述】:
在 MongoDB 中存储一些日志数据。现在我需要获取集合中实际存储的日志类型的列表。
我有一个这样的文件:(假设可能有成千上万个组和子组)
{
"Group": "Import",
"SubGroup": "Update server"
},{
"Group": "Import",
"SubGroup": "Delete server"
}
我想得到类似的结果:
{
"Group": "Import",
"SubGroups": ["Delete server", "Update server"]
}
但由于每个子组可能有更多,我想要任何重复... javascript 是否有类似 HashKey 集的东西...这里不是真正的 js 专家。
我将把它用于 gui,以便用户可以选择他想查看的日志类型。
作为一个附带问题。 由于 Mapreduce 和输出类型可以内联、替换和减少。 MongoDB 中有没有内置的简单方法,所以我可以告诉它每 x 分钟只更新一次 MapReduce,因为它实际上是非常静态的,还是我必须在我自己的应用程序层中将其实现为缓存?
【问题讨论】:
-
您能先解释一下为什么您的文档结构是这样的吗?为什么不将子组作为数组创建/更新您的文档,然后您根本不必进行任何 M/R 更新。
-
它就像 Windows 中的事件查看器 ...反对它?建议在这里很受欢迎。我曾经使用 SQL ......所以 no-sql 空间是新的。也许我现在正在以转储的方式这样做。
-
嗯..也许更新你的例子更详细?每个对象都会有一个日期戳和错误消息?并且子组不是一个明确定义的可能值列表?
-
那是因为我没有 Group 和 SubGroup 的可能值,以及为什么我想通过 MapReduce 找到它们。我开始认为我应该将它们保存在 Mongo 的单独集合中,而不是搜索所有可能的值。可能做错了...