sql >> Database teknologi >  >> NoSQL >> MongoDB

MongodDB $træk kun ét element fra array

Nej, der er ikke noget lignende i øjeblikket. Mange mennesker har allerede anmodet om funktionen, og du kan spore den i mongodb Jira . Så vidt du kan se, er det ikke løst og heller ikke planlagt (hvilket betyder, at du ikke har held i den nærmeste fremtid).

Den eneste mulighed er at bruge applikationslogik til at opnå dette ville være:

  1. find element, som du ønsker, og som har userTags som foo
  2. iter gennem userTags og fjern en fod fra den
  3. opdater dette element med et nyt userTags

Husk på, at denne operation bryder atomiciteten, men fordi Mongo ikke har leveret en indfødt metode til at gøre det, vil du på nogen måde bryde atomiciteten.

Jeg flyttede en alternativ løsning til det nye svar, fordi det ikke besvarer dette spørgsmål, men repræsenterer en af ​​tilgangene til at refaktorisere eksisterende skema. Det blev også så stort, at det begyndte at være meget større end det oprindelige svar.



  1. mongodb - afvikling af indlejrede underdokumenter

  2. mongoose håndhæver unik attribut på underdokumentegenskab

  3. Ikke i stand til at trække fra indlejret array og forespørgselsreturunderdokument ved hjælp af MongoTemplate

  4. Hvordan indlæses flere js-filer til databasen ved hjælp af mongo shell?