sql >> Database >  >> NoSQL >> MongoDB

MongodDB $ slechts één element uit array halen

Nee, op dit moment is er niets zoals dit. Veel mensen hebben de functie al aangevraagd en je kunt deze volgen in mongodb Jira . Voor zover je kunt zien is het niet opgelost en ook niet gepland (wat betekent dat je in de nabije toekomst geen geluk hebt).

De enige optie is om toepassingslogica te gebruiken om dit te bereiken:

  1. vind element dat je wilt en dat userTags als foo heeft
  2. doorloop userTags en verwijder er één foo uit
  3. werk dat element bij met een nieuwe userTags

Houd er rekening mee dat deze bewerking de atomiciteit verbreekt, maar omdat Mongo geen native methode heeft geleverd om dit te doen, verbreekt u de atomiciteit op enigerlei wijze.

Ik heb een alternatieve oplossing naar het nieuwe antwoord verplaatst, omdat het deze vraag niet beantwoordt, maar een van de benaderingen vertegenwoordigt om een ​​bestaand schema te refactoren. Het werd ook zo groot, dat het veel groter begon te worden dan het oorspronkelijke antwoord.



  1. Een genummerde lijst maken voor Meteor-gegevens

  2. Alleen naar localhost luisteren op MongoDB

  3. Kun je mongo $push prepend hebben in plaats van append?

  4. Hoe een veel-op-veel-relatie te organiseren in MongoDB