cari

Rumah  >  Soal Jawab  >  teks badan

mongodb 无法通过设置 dropDups : true 建立唯一索引?

数据库中的一个字段已经存在相同的值,想给这个字段建立一个唯一索引,并删除多余的数据,于是建立索引时设置了dropDups 为true,但还是报错重复key,是怎么回事呀?或者有什么方法能快速删除多余的数据呢?

迷茫迷茫2775 hari yang lalu779

membalas semua(5)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-28 09:05:35

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-04-28 09:05:35

    Pendua boleh dialih keluar melalui skrip python

    from pymongo import MongoClient
    client = MongoClient()
    db = client.dbname
    documentname = db.documentname
    
    keys = {}
    for k in documentname.find():
        key = k['field']
        if keys.has_key(key):
            print 'duplicate key %s' % key
            documentname.remove({'_id':k['_id']})
        else:
            print 'first record key %s' % key
            keys[key]=1
    
    

    Idea ini sangat mudah, rentasi dan simpan dalam dict, dan padamkannya apabila ia ditemui buat kali kedua.
    Tetapi dengan cara ini anda tidak boleh mengawal objek yang dipadam dan disimpan Anda boleh melaraskan skrip mengikut senario anda

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-04-28 09:05:35

    Saya juga pernah menghadapi situasi ini dan saya tidak tahu bagaimana untuk menyelesaikannya. Bolehkah anda memberi saya nasihat

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-28 09:05:35

    Apabila terdapat lebih daripada 100,000 keping data, bolehkah ia diproses dengan cepat melalui skrip? Bagaimanakah skrip mengendalikan apabila terdapat banyak keselarasan?

    balas
    0
  • PHP中文网

    PHP中文网2017-04-28 09:05:35

    mongoDB3.0 membuang parameter dropDups Data pendua tidak boleh dipadamkan melalui ini pada masa hadapan.

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4865696&uid=15795819

    balas
    0
  • Batalbalas