Pymongo multi consulta de actualización

Tengo la siguiente consulta

DB_HOST = '127.0.0.1'
COLLECTION = 'scraper'
db = pymongo.MongoClient(DB_HOST)[COLLECTION]['scrap']
db.update({'indice':0, 'thread_id':{'$in':list_to_update}},{'updated':'yes'}, multi=True)

donde list_to_update es una lista de thread_ids donde me gustaría insertar el campo de ‘actualización’ a ‘sí’

Estoy recibiendo el siguiente error

pymongo.errors.OperationFailure: multi update only works with $ operators

Alguna idea?

InformationsquelleAutor user2950162 | 2014-04-28

2 Kommentare

  1. 7

    Utilizar el $de operador:

    db.update({'indice':0, 'thread_id': {'$in': list_to_update}},
              {'$set': {'updated':'yes'}}, 
              multi=True)
  2. 8

    de pymongo 3.1 uso update_many:

    xxx.update_many({'indice':0, 'thread_id': {'$in': list_to_update}}, {'$set': {'updated':'yes'}})

    puede pasar upsert=False si usted no lo necesita upsert.
    Enlace a la documentación:
    aquí

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea