5

我正在构建一个 ASP.Net Web 应用程序并希望从 MongoDB(远程托管)访问数据。我的任何文件都看起来像这样(已确保 Utc 字段的索引);

{ 
   "_id" : { "$oid" : "509501393e8785025c10bc21" }, 
   "Index" : 1,
   "Url" : "http:...", 
   "CameraId" : 123,  
   "Utc" : { "$date" : 1351955858006 } 
}

考虑到用户端的性能,我想以最大速度获取这些数据。我尝试过的一个选项是通过 Page.aspx 上的 JSON 调用本地 Web 服务,它使用 MongoDB C# 驱动程序来查询两个日期(Utc)之间的文档。这可行,但似乎使用 Web 服务会在请求/响应周期中增加一些额外的毫秒数(使用 db.foo.findOne() 对单个文档的请求平均在 1.3 秒内提供服务)。该集合中的平均文档数为 50,000,将增加到 30,00,000。

我的问题是:

  1. 我是否正确地说使用 Web 服务会在请求/响应周期中增加一些延迟(毫秒)?(因为 MongoDB 实际上需要几毫秒才能完成查询)
  2. 第二种选择是使用 MongoDB 的HTTP/REST 接口。这样我可能会避免使用 Web 服务并直接查询 MongoDB。在这里我需要你的意见,
    • 有没有办法使用 HTTP/REST 在两个日期之间查询 MongoDB?
    • 有没有办法使用 HTTP/REST 使用 '>' 和 '<' 条件查询 MongoDB?
    • 从安全的角度来看,直接在 Page.aspx 上访问 DB 看起来如何?
  3. 上述模式的任何其他查询替代或优化?

我的相关问题在这里

问候。

4

1 回答 1

5

MongoDB 的原生 HTTP 接口不是为查询而构建的。你应该继续做你正在做的事情。此外,出于安全目的,您的 MongoDB 服务器不应公开公开,并且您应该始终像当前一样通过中间层。

于 2012-11-08T20:19:52.177 回答