I denne artikkelen vil vi lære hvordan du setter inn flere dokumenter samtidig i en gitt samling ved hjelp av MongoDB Shell Native Commands.
MongoDB InsertMany () -metode
Som navnet antyder, tillater InsertMany () -metoden oss å spesifisere et sett med dokumenter og sette dem alle sammen i en gitt samling.
Følgende viser syntaks for InsertMany () -metoden:
db.samling.InsertMany (
[,…],
Writeconcern: ,
bestilt:
)
Parameteren er som følger:
- Dokument - Angir en rekke dokumenter som skal settes inn i en gitt samling.
- Writeconcern - Definerer parametrene for skriveproblemer som overstyrer standard skriveproblemer. En skriveproblem brukes til å definere nivået av anerkjennelse som etterspørres fra MongoDB for skriveops.
- Bestilt -Definer om MongoDB -forekomsten skal utføre en bestilt eller uordnet innsats.
Metoden skal returnere en anerkjennelse som inkluderer en boolsk uttalelse og antall innsatte dokumenter.
La oss se på et praktisk eksempel.
Definere en samling
La oss starte med å lage en enkel samling der vi kan sette inn eksempler på data. Logg inn i MongoDB -skallet og kjør kommandoen:
$ Mongosh
db.CreateCollection ("Ansatte")
Kommandoen over skal opprette en ny samling som heter ansatte.
Sett inn flere dokumenter med _id -feltet
MongoDB er en veldig fleksibel database. Det lar oss sette inn dokumenter uten å spesifisere _id -feltet. Som standard vil MongoDB generere en unik identifikator for hvert dokument som er satt inn i samlingen
Eksemplet nedenfor viser hvordan du bruker InsertMany () -metoden for å sette inn flere dokumenter uten _id -feltet.
db.ansatte.INSERTMANY ([
Navn: "Ryan", avdeling: "Spillutvikling", lønn: 120000,
Navn: "David", avdeling: "Backend Development", lønn: 108000,
Navn: "Rachael", avdeling: "Full Stack Development", lønn: 110000,
Navn: "James", avdeling: "DevOps Development", lønn: 110000,
Navn: "Peter", avdeling: "Spillutvikling", lønn: 123000,
])
Hvis vi utfører spørringen ovenfor, bør vi få en utdata som vist:
"anerkjent": sant,
"Sett inn": [
ObjectId ("632BD2F28B16030EBD4FAD6"),
ObjectId ("632BD2F28B16030EBD4FAD7"),
ObjectId ("632BD2F28B16030EBD4FAD8"),
ObjectId ("632BD2F28B16030EBD4FAD9"),
ObjectId ("632bd2f28b16030eeBd4fada")
]
Ovennevnte viser en godkjenningsmelding og de automatisk genererte ID -verdiene.
Vi kan finne de innsatte dokumentene som:
db.ansatte.finne()
Kommandoen over skal returnere de innsatte dokumentene som vist:
"_id": ObjectId ("632BD2F28B16030EBD4FAD6"),
"Navn": "Ryan",
"Avdeling": "Spillutvikling",
"Lønn": 120000.0
"_id": ObjectId ("632BD2F28B16030EBD4FAD7"),
"Navn": "David",
"Avdeling": "Backend Development",
"Lønn": 108000.0
"_id": ObjectId ("632BD2F28B16030EBD4FAD8"),
"Navn": "Rachael",
"Avdeling": "Full Stack Development",
"Lønn": 110000.0
"_id": ObjectId ("632BD2F28B16030EBD4FAD9"),
"Navn": "James",
"Avdeling": "DevOps Development",
"Lønn": 110000.0
Sett inn flere dokumenter med _id -feltet
Hvis vi ikke ønsker at MongoDB skal generere en _ID -verdi, kan vi eksplisitt spesifisere verdiene for _id -kolonnen som vist i eksemplet nedenfor:
db.ansatte.INSERTMANY ([
_id: 1, navn: "Ryan", avdeling: "Spillutvikling", lønn: 120000,
_id: 2, navn: "David", avdeling: "Backend Development", lønn: 108000,
_id: 3, navn: "Rachael", avdeling: "Full Stack Development", lønn: 110000,
_id: 4, navn: "James", avdeling: "DevOps Development", lønn: 110000,
_id: 5, navn: "Peter", avdeling: "Spillutvikling", lønn: 123000,
])
I eksemplet over spesifiserer vi eksplisitt verdiene til _id -kolonnen for hvert dokument som er satt inn i samlingen.
Spørringen ovenfor skal returnere:
"anerkjent": sant,
"Sett inn": [
1.0,
2.0,
3.0,
4.0,
5.0
]
Uordnet innsats
Vi kan også utføre en uordnet innsats ved å sette den bestilte parameteren til False som vist nedenfor:
db.ansatte.INSERTMANY ([
_id: 1, navn: "Ryan", avdeling: "Spillutvikling", lønn: 120000,
_id: 2, navn: "David", avdeling: "Backend Development", lønn: 108000,
_id: 3, navn: "Rachael", avdeling: "Full Stack Development", lønn: 110000,
_id: 4, navn: "James", avdeling: "DevOps Development", lønn: 110000,
_id: 5, navn: "Peter", avdeling: "Spillutvikling", lønn: 123000,
], bestilt: falsk)
Dette er nyttig når du jobber med dupliserte dokumenter.
Konklusjon
I dette innlegget dekket vi grunnleggende om å jobbe med MongoDB InsertMany () -metoden for å legge til flere dokumenter i en gitt samling i en enkelt kommando.