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

Czy mongo może upsertować dane tablicy?

Po prostu sam wpadłem na ten problem. Nie udało mi się znaleźć rozwiązania z jednym wywołaniem, ale znalazłem rozwiązanie z dwoma wywołaniami, które działa gdy masz unikalną wartość w elementach tablicy . Użyj $pull najpierw polecenie, które usuwa elementy z tablicy, a następnie $push .

db.soup.update({
    "tester":"tom"
}, {
    $pull: {
        'array': {
            "id": "3"
        }
    }
})
db.soup.update({
    "tester":"tom"
}, {
    $push: {
        'array': {
            "id": "3",
            "letter": "d"
        }
    }
})

Powinno to działać, gdy dokument nie istnieje, gdy dokument istnieje, ale wpis w tablicy nie istnieje i gdy wpis istnieje.

Ponownie, działa to tylko wtedy, gdy masz coś, na przykład id w tym przykładzie, które powinno być unikalne we wszystkich elementach tablicy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pasek:należy podać źródło lub klienta

  2. MongoDB — ustawianie instrukcji warunkowej w .find()

  3. Zautomatyzuj kontrolę stanu bazy danych

  4. $rtrim . MongoDB

  5. MongoDB wstawia się podczas próby wstawienia liczby całkowitej