sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan mongo överföra arraydata?

Jag stötte precis på det här problemet själv. Jag kunde inte hitta en ensamtalslösning, men jag hittade en tvåanropslösning som fungerar när du har ett unikt värde i dina arrayelement . Använd $pull kommandot först, som tar bort element från en array och sedan $push .

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

Detta bör fungera när dokumentet inte finns, när dokumentet finns men posten i arrayen inte finns, och när posten finns.

Återigen, detta fungerar bara om du har något, som id fältet i det här exemplet, som ska vara unikt för alla element i arrayen.



  1. spring-data-mongo - valfria frågeparametrar?

  2. Förbereder en MongoDB-server för produktion

  3. mongodb 3.x-drivrutin Android-kompatibilitet

  4. MongoDB $rtrim