MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Aktualizacja obiektu wewnątrz tablicy za pomocą PyMongo

Użyj "notacji z kropkami" oraz operator pozycyjny w części aktualizacyjnej. Przekształć również swoje dane wejściowe, aby pasowały do ​​postaci „notacji kropkowej” dla reprezentacji klucza:

# Transform to "dot notation" on explicit field
for key in data:
    data["mylist.$." + key] = data[key]
    del data[key]

# Basically makes
# { 
#      "mylist.$.data1": "new lorem",
#      "mylist.$.data3": "goldeneye"
# }

db.testing.find_and_modify(
    query = {"_id": "12345", 'mylist.nested_id' : "1"},
    update = { "$set": data }
)

Więc to transponuje $ do rzeczywistej pozycji dopasowanego elementu z części zapytania aktualizacji. Dopasowany element tablicy zostanie zaktualizowany, a użycie „notacji kropkowej” wpłynie tylko na wymienione pola.

Nie mam pojęcia, co ma oznaczać „usługa” w tym kontekście, a ja traktuję to jako „błąd transkrypcji”, ponieważ wyraźnie próbujesz dopasować element tablicy w pozycji.

To może być czystsze, ale to powinno dać ci ogólny pomysł.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak indeksować, aby wyszukiwanie i sortowanie tekstu korzystało z indeksu?

  2. Jak używać typu dziesiętnego w MongoDB

  3. MongoDB:Zapytanie przez hash ze specjalnymi znakami w kluczach

  4. Mongoose pobiera dokumenty pasujące do tablicy

  5. Jak wykonać selektywne odzyskiwanie Mongo?