最近在写一个爬虫工具,将网站的数据储存到mongodb中,由于数据有重复的,所以我就在建立数据库的时候,为集合建立了索引,下面说下我的步骤,集合名称为drugitem,
下面是集合截图:
我要为name字段创建唯一索引,因为要保证name没有重复:
就这样我运行程序发现数据比原来没有设置唯一索引时少了好多,我仔细查看发现程序在name字段重复的地方停止了,这不是我想要的结果,因为后面的数据还没有查询完成。于是我就删除了原来创建的name索引:
然后remove数据,重新按照老办法重新抓取数据,这样一来数据是得到了,但是本质问题还没解决,里面含有许多重复数据,于是我使用唯一索引+去重操作得到最终结果:
这样做的前提是集合中已经含有所有数据,这样处理后会发现drugitem集合中文档减少,说明去除了重复的文档。
问题虽然解决了,但是我觉得还是不太合适,难道我们每次都要这样处理才能得到最终数据?能不能在程序中插入的时候加以判断(或许这样会增加插入时间)或者在建立集合的时候提前配置好?由于本人初次接触mongodb,希望有高手看到后给予指点。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-08 05:01:01