как я могу избежать дублирования данных в моей базе данных - PullRequest
0 голосов
/ 04 октября 2018

У меня есть скрипт 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 голосов
/ 04 октября 2018

@ Houacine Leila,

Вы можете создать уникальный индекс для каждой из коллекций, в котором необходимо поддерживать уникальность записей.

Пример:

Для коллекции Corpus: уникальный индекс в Corpus_Name избегает хранения дублирующихся записей.

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

Примечание. Все существующие документы должны иметь уникальное значение для ключа Corpus_Nameесли вы создаете уникальный индекс по этому ключу.Перед созданием такого индекса необходимо вручную удалить повторяющиеся записи.

Создание уникального индекса по определенному ключу в коллекции гарантирует, что в коллекции не будут созданы повторяющиеся записи с таким же значением ключа в коллекции..

...