sql >> Databáze >  >> NoSQL >> MongoDB

Může mongo přenést data pole?

Sám jsem na tento problém narazil. Nepodařilo se mi najít řešení s jedním voláním, ale našel jsem řešení se dvěma voláními, které funguje když máte v prvcích pole jedinečnou hodnotu . Použijte $pull nejprve příkaz, který odstraní prvky z pole, a poté $push .

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

To by mělo fungovat, když dokument neexistuje, když dokument existuje, ale položka v poli neexistuje, a když položka existuje.

Opět to funguje pouze v případě, že něco máte, například id pole v tomto příkladu, které by mělo být jedinečné napříč prvky pole.



  1. Odeberte všechna pole, která mají hodnotu null

  2. Jak přijímat publikační zprávu Redis v Go

  3. java.lang.NoClassDefFoundError při použití ovladače MongoDB

  4. MongoDB extrahování hodnot z BasicDBObject (Java)