将MongoDB集合的查询限制为仅非活动块

时间:2011-05-12 23:16:38

标签: mongodb sharding

我正在构建一个将执行两个阶段的应用程序。

  1. 执行阶段 - 第一阶段非常 密集INSERT(尽可能多的插入 因为硬件可能可以 执行一秒钟)。这是 本质上是工作的记录线索 执行。
  2. 验证阶段 - 下一步 阶段将查询生成的日志 按阶段1并与之比较 外部来源并执行 记录UPDATE以存储一些 统计。此过程是第1阶段的第二优先。
  3. 我正在尝试查看并行执行它们是否可行,并将写入锁定保持在执行阶段的最小值。我认为这样做的一种方法是将我的验证阶段限制为仅查询不在执行阶段当前插入的块中的旧记录。 MongoDB中是否存在将find()限制为仅在一段可配置的时间内未访问的块进行查询的内容?

2 个答案:

答案 0 :(得分:2)

您可能想要设置副本集。插入主服务器并从辅助服务器获取。这样,您的插入内容就不会被阻止。

答案 1 :(得分:1)

您可以将上述副本集与slaveOk一起使用,并在主服务器中进行更新。

您可以使用时间戳字段或ObjectId(已包含时间戳)进行过滤。