MongoDB Pull

MongoDB Pull
Arrays er noen av de vanligste og nyttige datatypene i utviklingen. Du kommer til å komme over arrayverdier når du jobber med MongoDB -dokumenter.

Det er derfor viktig å forstå forskjellige matriseoperasjoner i MongoDB og hvordan vi kan bruke dem i databasene dine.

For dette innlegget vil vi fokusere på MongoDB $ Pull -operatøren. Denne operatøren lar deg fjerne en verdi fra en eksisterende matrise basert på den spesifiserte tilstanden.

Operatørsyntaks

Følgende skjema viser operatørens syntaks og parameterstøtte:

$ pull: :,:,…

Følgende oppførsel gjelder for $ pull -operatøren i MongoDB -dokumenter:

  1. Definere tilstanden på arrayelementer som innebygde dokumenter, og operatøren vil bruke den spesifiserte tilstanden på hvert arrayelement som en dokumentsamling.
  2. Hvis den spesifiserte verdien er en matrise, vil operatøren bare fjerne elementene i den samsvare med den spesifiserte verdien, bestill inkludert.
  3. Hvis verdien som skal fjernes er et dokument, vil operatøren fjerne elementene med eksakte felt og verdier, bestill eksklusiv.

La oss utforske $ Pull -operatøren i et praktisk miljø.

Praktisk eksempel

La oss starte med å lage en testsamling og legge til noen eksempler på dokumenter. Du kan bruke spørringen som vist nedenfor:

db.CreateCollection ("Brukere")
OK: 1

Sett inn prøveoppføringer.

db.Brukere.INSERTMANY ([

_id: 1,
Navn: "William",
Avdeling: "Spillutvikling",
StartYear: 2021,
Støttet_langs: ["C ++", "Java", "C#", "Python"],
Teknologier: [

"Docker": True,
"Nivå": "mellomliggende"
,

"Ansible": True,
"Nivå": "Nybegynner"

],
Land: "USA",
Lønn: 160000

])

Anta at vi ønsker å fjerne “python” fra støttet_langs -array, vi kan kjøre et spørsmål som vist:

db.Brukere.updatemany (, $ pull: støttet_langs: $ in: ["python"])

Dette bør fjerne “Python” -oppføringen fra den støttede_lang -arrayen. Den resulterende utgangen er som vist:


"_id": 1.0,
"Navn": "William",
"Avdeling": "Spillutvikling",
"StartYear": 2021.0,
"Støttet_langs": [
"C ++",
"Java",
"C#"
],
"Teknologier": [

"Docker": True,
"Nivå": "mellomliggende"
,

"Ansible": True,
"Nivå": "Nybegynner"

],
"Land": "USA",
"Lønn": 160000.0

Vi kan se oppføringen “Python” er fjernet fra dokumentet.

For å fjerne et element fra en rekke dokumenter, kan vi kjøre et spørsmål som vist:

db.Brukere.Updatemany (, $ pull: Technologies: "Ansible": True, "Level": "Begynner")

Kommandoen over vil fjerne elementet fra teknologiens matrise som inneholder to dokumenter.

Det resulterende dokumentet er som vist:

db.Brukere.finne()

Produksjon:


"_id": 1.0,
"Navn": "William",
"Avdeling": "Spillutvikling",
"StartYear": 2021.0,
"Støttet_langs": [
"C ++",
"Java",
"C#"
],
"Teknologier": [

"Docker": True,
"Nivå": "mellomliggende"

],
"Land": "USA",
"Lønn": 160000.0

Fra utgangen over kan vi bekrefte elementet med den spesifiserte parameteren er fjernet fra teknologiens matrise.

Konklusjon

Denne artikkelen dekker grunnleggende om å jobbe med $ pull -operatøren i MongoDB, slik at du kan fjerne elementer fra en matrise i et gitt dokument.