MongoDB 查找和删除 - 最快的方法

2023-12-25

我有一个简单的问题,从 mongo 集合中获取和删除对象的快速方法是什么。这是代码,我目前有:

$cursor = $coll->find()->sort(array('created' => 1))->limit(1);
$obj = $cursor->getNext();
$coll->remove(array('name' => $obj['name']));

正如您在上面看到的,它从数据库中获取一个文档并将其删除(因此不会再次处理它)。无论这有多快,我都需要它更快地执行。挑战在于,我们有多个进程执行此操作并处理它们发现的内容,但有时两个或多个进程会获取相同的文档,从而产生重复。基本上我需要做到这样一个文档只能被抓取一次。因此,任何想法将不胜感激。


彼得, 如果不了解所有上下文,很难说出最好的解决方案是什么 - 但您可以使用的一种方法是findAndModify。这将查询单个文档并返回它,并且还对其应用更新。

您可以使用它来查找要处理的文档,并同时修改“状态”字段以将其标记为正在处理,以便其他工作人员可以识别它并忽略它。

这里有一个可能有用的示例:http://docs.mongodb.org/manual/reference/command/findAndModify/ http://docs.mongodb.org/manual/reference/command/findAndModify/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 查找和删除 - 最快的方法 的相关文章

随机推荐