如何避免数据库中的重复数据

时间:2018-10-04 14:33:10

标签: python database mongodb data-mining

我有一个脚本python,每次运行它时,数据库中的数据都是重复的

这是我的代码:(这里我的示例是归因于我的收藏中的每个元素“”,仅用于尝试是否我必须知道谁是相同的信息,否则我将只找到一个,即使相同

代码:

import pymongo

def Create_DB():

        myclient = pymongo.MongoClient("mongodb://localhost:27017/")
        db = myclient['Le_Monde_DB']

        #la collection Corpus
        Corpus = db.Corpus
        Corpus_data = {
        'Corpus_Name': '',
        'Comment': '',

        }
        result = Corpus.update(Corpus_data,{upsert:true})
        print('One Corpus: {0}'.format(result))

        #la collection Publication 
        Publ = db.Publ
        Publ_data = {
        'Publ_Nature': '',
        }
        result = Publ.insert(Publ_data)
        print('One Publ: {0}'.format(result))


        #la collection text 
        Text = db.Text
        Text_data = {
        'Text': '',
        }
        result = Text.insert(Text_data)
        print('One Text: {0}'.format(result))


        #la collection phrase 
        Phrase = db.Phrase
        Phrase_data = {
        'Type_Phrase': '',
        'Phrase':"" 
        }
        result = Phrase.insert(Phrase_data)
        print('One Phrase: {0}'.format(result))


        #la collection Token
        Token = db.Token
        Token_data = {
        'Type_Token': '',
        'Token':"" 
        }
        result = Token.insert(Phrase_data)
        print('One Token: {0}'.format(result))

        #la collection Meta_Data
        Meta = db.Meta
        Meta_data = {
        'Type_Meta': '',
        'Value_Meta':"" 
        }
        result = Meta.insert(Meta_data)
        print('One Meta: {0}'.format(result))







Create_DB()

感谢帮助:)

1 个答案:

答案 0 :(得分:0)

@Houacine Leila,

您可以在需要保持记录唯一性的每个集合上创建一个unique index

示例:

对于Corpus集合,Corpus_Name上的唯一索引避免存储重复记录。

db.Corpus.createIndex({"Corpus_Name":1}, {"unique":true, "background":true})

注意:如果您在键Corpus_Name上创建唯一索引,则所有现有文档都必须具有唯一值。创建此类索引之前,您需要考虑手动删除重复的记录。

在集合的特定键上创建唯一索引可确保不会在集合中创建具有相同键值的重复记录。