我正在将系统从 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 函数来做到这一点?谢谢!