mongodb中的查询/映射约简
我们正在玩mongodb,但是在查询时遇到了som问题 我们制作了一个powershell脚本,用于从服务器获取驱动器信息并将其保存在mongodb中 我们的模式:mongodb中的查询/映射约简,mongodb,mongodb-query,Mongodb,Mongodb Query,我们正在玩mongodb,但是在查询时遇到了som问题 我们制作了一个powershell脚本,用于从服务器获取驱动器信息并将其保存在mongodb中 我们的模式: { "_id" : ObjectId("514332334a62a9209c22c866"), "FreeSpace" : NumberLong("9439911936"), "Name" : "C", "TotalSize" : NumberLong("128033222656"), "Server" : "p
{
"_id" : ObjectId("514332334a62a9209c22c866"),
"FreeSpace" : NumberLong("9439911936"),
"Name" : "C",
"TotalSize" : NumberLong("128033222656"),
"Server" : "pcws24",
"Tidspunkt" : ISODate("2013-03-15T14:37:39.457Z")
}
编辑:我已将数据模型更改为此。它应该简化查询
{
"_id" : ObjectId("514c2ee94a62a914e0bbe954"),
"Server" : "pcws24",
"Tidspunkt" : ISODate("2013-03-22T10:14:01.4Z"),
"Drev" : [{
"DriveLetter" : "C",
"VolumeLabel" : "",
"FreeSpace" : NumberLong("6715068416"),
"TotalSize" : NumberLong("128033222656")
}, {
"DriveLetter" : "D",
"VolumeLabel" : "Data",
"FreeSpace" : NumberLong("80200286208"),
"TotalSize" : NumberLong("159891058688")
}]
}
我们有以下用例场景
- 获取每台服务器上每个驱动器的最新状态
- 获取每台服务器上每个驱动器最近24小时的状态
- 获取每台服务器上每个驱动器上周的状态。 等等
我们如何做到这一点?这可以通过查询完成,还是应该使用map/reduce 在这种情况下,“状态”是什么?您能否提供一个示例,说明您希望从查询结果中看到什么?我不确定这些字段是什么意思,你能澄清一下吗?文档是否持续拉入mongodb,还是创建一次,然后不断更新?对于所有的问题,我很抱歉,但是我不知道如何在不更全面地了解情况的情况下帮助您。每个服务器上的每个驱动器都有一个文档。因此,最新的用例将显示服务器1驱动器C10GB可用、驱动器D100GB可用、服务器2驱动器C15GB等。每个服务器上的每个驱动器的状态都是一个文档。因此,最新的用例将显示服务器1驱动器C10GB可用,驱动器D100GB可用,服务器2驱动器C15GB等。24小时是过去24小时的所有文档。因此,我们可以了解磁盘空间的使用情况。服务器脚本每小时运行一次并添加新文档。最后一个问题:当您说“每个”时,您的意思是要从单个查询中返回所有服务器的结果吗?或者,您是否希望能够指定要获取信息的服务器/磁盘?从单个服务器/磁盘获取信息是一个相当简单的查询,但是在我看来,从单个查询获取所有服务器/磁盘的信息是一个更复杂的操作,可能会使用mongodb的聚合框架。如果我可以在一个查询中获得每个服务器的结果,那就太完美了。我可以使演示方面更具活力。它不需要知道服务器名称。