Hur man använder MongoDB med nod.js
2021 JavaScript Full-Stack Bootcamp är nu öppet för registreringar!
om du inte känner till MongoDB, kolla vår guide om dess grunder och hur du installerar och använder den 🙂
vi använder det officiella mongodb
npm-paketet. Om du redan har en nod.js-projekt du arbetar med, installera det med
npm install mongodb
om du börjar från början skapar du en ny mapp med din terminal och kör npm init -y
för att starta en ny nod.JS-projektet och kör sedan kommandotnpm install mongodb
.
anslutning till MongoDB
du behöver paketetmongodb
och du får MongoClient-objektet från det.
const mongo = require('mongodb').MongoClient
skapa en URL till MongoDB-servern. Om du använder MongoDB lokalt kommer webbadressen att vara ungefär som mongodb://localhost:27017
, eftersom 27017
är standardporten.
const url = 'mongodb://localhost:27017'
använd sedanmongo.connect()
– metoden för att få referensen till MongoDB-instansklienten:
mongo.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => { if (err) { console.error(err) return } //...})
Nu kan du välja en databas medclient.db()
metod:
const db = client.db('kennel')
skapa och få en samling
Du kan få en samling genom att använda metoden db.collection()
. Om samlingen inte finns ännu skapas den.
const collection = db.collection('dogs')
infoga data i en samling ett dokument
Lägg till i appen.js följande funktion som använder insertOne()
metod för att lägga till ett objektdogs
samling.
collection.insertOne({name: 'Roger'}, (err, result) => {})
Du kan lägga till flera objekt med insertMany()
, som passerar en array som den första parametern:
collection.insertMany(, (err, result) => {})
hitta alla dokument
använd find()
metod på samlingen för att få alla dokument som läggs till i samlingen:
collection.find().toArray((err, items) => { console.log(items)})
hitta ett specifikt dokument
skicka ett objekt till find()
metod för att filtrera samlingen baserat på vad du behöver hämta:
collection.find({name: 'Togo'}).toArray((err, items) => { console.log(items)})
om du vet att du kommer att få ett element kan du hoppa över toArray()
konvertering av markören genom att ringa findOne()
:
collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})
Uppdatera ett befintligt dokument
använd metoden updateOne()
för att uppdatera ett dokument:
collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => { console.log(item)})
radera ett dokument
använd metoden deleteOne()
för att radera ett dokument:
collection.deleteOne({name: 'Togo'}, (err, item) => { console.log(item)})
stänga anslutningen
När du är klar med operationerna kan du ringa close()
– metoden på Klientobjektet:
client.close()
använd löften eller async/vänta
jag publicerade alla dessa exempel med hjälp av callback-syntaxen. Detta API stöder löften (och async / väntar) också.
till exempel kan detta
collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})
användas med löften:
collection.findOne({name: 'Togo'}) .then(item => { console.log(item) }) .catch(err => { console.error(err) })
eller async/väntar:
const find = async () => { try { const item = await collection.findOne({name: 'Togo'}) } catch(err => { console.error(err) })}find()
ladda ner min gratis nod.JS Handbook
2021 JavaScript Full-Stack Bootcamp är nu öppet för registreringar fram till nästa tisdag! Missa inte denna möjlighet, registrera dig idag!
fler nod tutorials:
- noden.JS Runtime v8 alternativlista
- hur man skriver ut en duk till en DATAADRESS
- hur man använder MongoDB med nod.JS
- Mopsguiden
- installera en äldre version av ett npm-paket
- hur man bestämmer om ett datum är idag i JavaScript
- hur man skriver en CSV-fil med nod.JS
- Node file stats
- analysera JSON med nod.js
Leave a Reply