gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 13:11:36 25 4
gpt4 key购买 nike

我有一个简单的问题,从 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/

关于performance - MongoDB 查找和删除 - 最快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8539575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com