sql >> Database >  >> NoSQL >> MongoDB

Kan mongo arraygegevens opwaarderen?

Ik liep zelf net tegen dit probleem aan. Ik heb geen oplossing met één oproep kunnen vinden, maar ik heb een oplossing met twee oproepen gevonden die werkt wanneer je een unieke waarde in je array-elementen hebt . Gebruik de $pull commando eerst, dat elementen uit een array verwijdert, en dan $push .

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

Dit zou moeten werken als het document niet bestaat, als het document wel bestaat maar het item in de array niet bestaat, en als het item wel bestaat.

Nogmaals, dit werkt alleen als je iets hebt, zoals de id veld in dit voorbeeld, dat uniek moet zijn voor alle elementen van de array.



  1. Opgeslagen functie oproepen in mongodb

  2. Mongodb sorteren met hoofdletterongevoelige manier

  3. mongoError:Topologie is vernietigd

  4. Ondersteuning voor meerdere gebruikerstypen door Passport-local mongoose node.js