Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中的查询/映射约简_Mongodb_Mongodb Query - Fatal编程技术网

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

我们正在玩mongodb,但是在查询时遇到了som问题

我们制作了一个powershell脚本,用于从服务器获取驱动器信息并将其保存在mongodb中

我们的模式:

{
  "_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小时的状态
  • 获取每台服务器上每个驱动器上周的状态。 等等
该模型是从Get-Drive cmdlet创建的


我们如何做到这一点?这可以通过查询完成,还是应该使用map/reduce

在这种情况下,“状态”是什么?您能否提供一个示例,说明您希望从查询结果中看到什么?我不确定这些字段是什么意思,你能澄清一下吗?文档是否持续拉入mongodb,还是创建一次,然后不断更新?对于所有的问题,我很抱歉,但是我不知道如何在不更全面地了解情况的情况下帮助您。每个服务器上的每个驱动器都有一个文档。因此,最新的用例将显示服务器1驱动器C10GB可用、驱动器D100GB可用、服务器2驱动器C15GB等。每个服务器上的每个驱动器的状态都是一个文档。因此,最新的用例将显示服务器1驱动器C10GB可用,驱动器D100GB可用,服务器2驱动器C15GB等。24小时是过去24小时的所有文档。因此,我们可以了解磁盘空间的使用情况。服务器脚本每小时运行一次并添加新文档。最后一个问题:当您说“每个”时,您的意思是要从单个查询中返回所有服务器的结果吗?或者,您是否希望能够指定要获取信息的服务器/磁盘?从单个服务器/磁盘获取信息是一个相当简单的查询,但是在我看来,从单个查询获取所有服务器/磁盘的信息是一个更复杂的操作,可能会使用mongodb的聚合框架。如果我可以在一个查询中获得每个服务器的结果,那就太完美了。我可以使演示方面更具活力。它不需要知道服务器名称。