现在的数据是使用爬虫抓取的。现在有些数据是重复的。
然后现在我想请教应该怎么做才能去重呢?
我想的是只要能查到相对应的name也是ok的
打个比方。我现在有个community_name字段。
我想查询一下,community_name重复次数超过1次的name列表
我应该怎么去查询。
谢谢。
文档格式:
{
"_id" : ObjectId("5732e6f884e079abfa783703"),
"buildings_num" : "4",
"community_name" : "江和城",
"address" : "新安江洋安新城,南临洋安大道、北临滨江路",
"lat" : "29.511485",
"building_year" : "2014年建成",
"lng" : " 119.329673",
"house_num" : 224,
"id" : 84453,
"category" : "建德商圈",
"city" : "杭州",
"lj_id" : "187467387072819",
"area" : "建德",
"average_price" : 8408,
"property_cost" : "2 元/平米/月",
"property_company" : "金管家",
"volume_rate" : "1.98",
"greening_rate" : 0.33,
"developers" : "杭州和谐置业有限公司"
}
RDBMS와 비슷한 것을 구현하고 싶은 것 같습니다
으아아아제가 제대로 이해한 것인지 모르겠습니다. 이 경우 해당 접근 방식은 집계 프레임워크를 사용하는 것입니다.
으아아아이 쿼리는 다음 인덱스를 사용하여 더 빠른 결과를 얻을 수 있습니다.
으아아아그래도 이 쿼리는 모든 레코드를 순회하므로 속도가 그리 빠르지는 않습니다.
와 같이 기록해 두세요. 으아아아사실 매번 모든 기록을 세는 것은 낭비입니다. 결과를 얻은 후 캐시하는 것이 가장 좋습니다. 캐시하는 방법은 수집된 데이터를 어떻게 사용하려는지에 따라 다릅니다.
삽입하기 전에 판단하는 것이 더 좋은 방법입니다. 동일한
community_name
이 이미 존재하는 경우이런 방식으로
community_name_stat
세트를 직접 가져와 각community_name
가 몇 번이나 나타나는지 확인할 수 있습니다. 물론 최종 접근 방식은 필요에 따라 다릅니다. MongoDB는 매우 유연하며, 이는 관계형 데이터베이스와 구별되는 중요한 기능 중 하나입니다. 다양한 기능을 이해하고 필요에 따라 가장 비용 효율적인 솔루션을 사용자 정의하는 것은 MongoDB를 사용하는 데 있어 가장 큰 과제 중 하나입니다.올바르게 이해했다면 upsert를 직접 사용할 수 있습니다. 시스템에 이미 동일한 조건의 레코드가 있으면 업데이트만 하고, 그렇지 않으면 새 레코드를 생성하세요.
db.collection.update(query, update, {upsert: True, multi: <boolean>})
multi가 true로 설정된 경우 여러 레코드를 수정할 수도 있습니다.