MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Актуализиране на обект в масив с PyMongo

Използвайте "нотация с точка" и позиционния оператор в частта за актуализиране. Също така преобразувайте въведените данни, за да съответстват на формата за „точкова нотация“ за представянето на ключа:

# 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 }
)

Така че това ще транспонира $ към действителната съвпадаща позиция на елемент от частта за заявка на актуализацията. Съответстващият елемент на масива ще бъде актуализиран и с помощта на „точкова нотация“ ще бъдат засегнати само споменатите полета.

Нямам представа какво трябва да означава „услуга“ в този контекст и аз просто го третирам като „грешка при транскрибиране“, тъй като очевидно се опитвате да съпоставите елемент от масив в позиция.

Това може да е по-ясно, но това трябва да ви даде обща представа.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да свържете nodeJS docker контейнер към mongoDB

  2. Как да промените поддокумент след намиране с mongoose

  3. Mongodb:споделяне на база данни между два компютъра

  4. Добавяне на BSON масив към MongoDB 3.2 документ и извличане на стойностите обратно ( MongoCXX 3.2 ) ( C++ 11)

  5. MongoDB $и операторска заявка в PHP