1

我正在将系统从 sql server 转换为 mongodb。我相信该项目是 mongodb 的一个很好的候选者,但这不是我的问题。

在 sql 数据库中,我有一个存储过程,用于返回一组需要处理的记录。所以,我在 sql 数据库中处理了 BIT 和 LastProcessingRequestDate DATETIME 字段。在客户端更新要处理的记录 = 1 之前,记录需要 1 秒到 5 分钟在客户端进行处理。

我的存储过程将返回前 100 条记录,其中 Processed = 0 且 LastProcessingRequestDate < DATEADD(minute, -10, NOW()),但在返回每条记录之前,它会更新 LastProcessingRequestDate=NOW()。这将确保在我完成处理它们之前,我不会取回我已经在处理的任何记录(有一个线程负责保持一个充满要处理的记录的队列,多个线程从中出列) .

我想知道将这种情况转移到 MongoDB 的最佳做法是什么。我的一个想法是创建一个执行类似操作的 mongodb 函数,但我没有看到任何此类函数的示例。另一种是简单地使用相同的逻辑,但在客户端处理 LastProcessingRequestDate 的更新。这对我来说似乎不太理想。

有没有人有一个例子说明我如何在 mongodb 中编写一个 javascript 函数来做到这一点?谢谢!

4

1 回答 1

0

我真的认为某种形式的“客户端”或“业务对象/实体/数据对象”逻辑在这里是有序的。

另一种选择是基本上构建多个集合并将这些集合用于故事“待处理”项目。

于 2010-10-21T14:43:12.720 回答