MongoDB文件计数波动

时间:2015-06-14 05:29:46

标签: php python mongodb database

我遇到的问题是document collection计数略有不稳定。

以下是我的工作流程:

首先使用scrapy进行抓取。已删除的项目通过pipeline发送,并准备使用collection库写入pymongo

接下来,检查项目当前是否存在(使用密钥),如果是,则继承_id并使用db.collection.save()来实现upsert。进行检查以确保在写入之前存在所有fields

如果该项目不存在,则会在document中创建新的collection

最后,前端PHP网页允许用户使用documentscollection中搜索PHP mongoDB driver

问题

我开始在网页上注意到一些新文档会出现在一次抓取中,然后突然从视图中消失,然后在下一次抓取后再次神秘地出现。所以我进入mongo shell并发现如果重复发送,特定查询将返回波动的结果数。类似于一个然后下降两个然后回到稳定数字的东西。

我不能得到的是,代码中的任何一点都不会remove()来自documents的任何collection。我的印象是db.collection.save()只会导致集合中的文档数量相等或越来越多。

是否存在某种形式的阻止,无法查询正在编写的文档?或者它与我的爬行间隔有关?

备注:

  • 没有对集合进行索引
  • 每次抓取+写入过程只需大约5到10秒,并在30秒间隔内重复。

查询的代码段:

    $cursor = $collection->find(array( '$or' => array(
            array('post_content' => new MongoRegex("/$safe/i")),
            array('post_user' => new MongoRegex("/^$safe$/i"))
    )));
    $cursor->sort(array('post_datetime' => -1));

0 个答案:

没有答案