Articles

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