Articles

Sådan bruges MongoDB med Node.js

2021 JavaScript Full-Stack Bootcamp er nu åben for tilmeldinger!

Hvis du ikke er bekendt med MongoDB, skal du tjekke vores guide til det grundlæggende og om, hvordan du installerer og bruger det:)

Vi bruger den officiellemongodb npm-pakke. Hvis du allerede har en Node.js-projekt, du arbejder på, Installer det ved hjælp af

npm install mongodb

Hvis du starter fra bunden, skal du oprette en ny mappe med din terminal og køre npm init -y for at starte en ny Node.JS project, og kør derefter kommandoen npm install mongodb.

tilslutning til MongoDB

du har brug formongodb pakken, og du får MongoClient-objektet fra det.

const mongo = require('mongodb').MongoClient

Opret en URL til MongoDB-serveren. Hvis du bruger MongoDB lokalt, vil URL ‘ en være noget som mongodb://localhost:27017, da 27017 er standardporten.

const url = 'mongodb://localhost:27017'

brug derefter mongo.connect()metode til at få henvisningen til MongoDB-forekomstklienten:

mongo.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => { if (err) { console.error(err) return } //...})

nu Kan du vælge en database ved hjælp af client.db()metode:

const db = client.db('kennel')

Opret og få en samling

Du kan få en samling ved hjælp af db.collection() metode. Hvis samlingen ikke findes endnu, er den oprettet.

const collection = db.collection('dogs')

indsæt data i en samling et dokument

Tilføj til app.js følgende funktion, der bruger insertOne() metode til at tilføje et objekt dogs samling.

collection.insertOne({name: 'Roger'}, (err, result) => {})

Du kan tilføje flere elementer ved hjælp af insertMany(), passerer et array som den første parameter:

collection.insertMany(, (err, result) => {})

Find alle dokumenter

brug find() metode på samlingen for at få alle dokumenter tilføjet til samlingen:

collection.find().toArray((err, items) => { console.log(items)})

Find et specifikt dokument

Send et objekt til find() metode til at filtrere samlingen baseret på hvad du skal hente:

collection.find({name: 'Togo'}).toArray((err, items) => { console.log(items)})

Hvis du ved, at du får et element, kan du springe toArray() konvertering af markøren ved at kalde findOne():

collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})

Opdater et eksisterende dokument

brug updateOne() metode til opdatering af et dokument:

collection.updateOne({name: 'Togo'}, {'$set': {'name': 'Togo2'}}, (err, item) => { console.log(item)})

slet et dokument

brug deleteOne() metode til at slette et dokument:

collection.deleteOne({name: 'Togo'}, (err, item) => { console.log(item)})

lukning af forbindelsen

når du er færdig med operationerne, kan du ringe til close() metode på Klientobjektet:

client.close()

brug løfter eller async/afvent

Jeg sendte alle disse eksempler ved hjælp af tilbagekaldssyntaksen. Denne API understøtter løfter (og async / venter) så godt.

for eksempel dette

collection.findOne({name: 'Togo'}, (err, item) => { console.log(item)})

kan bruges med løfter:

collection.findOne({name: 'Togo'}) .then(item => { console.log(item) }) .catch(err => { console.error(err) })

eller async/afventer:

const find = async () => { try { const item = await collection.findOne({name: 'Togo'}) } catch(err => { console.error(err) })}find()

Hent min gratis node.js Handbook

2021 JavaScript Full-Stack Bootcamp er nu åben for tilmeldinger indtil næste tirsdag! Gå ikke glip af denne mulighed, Tilmeld dig i dag!

flere node tutorials:

  • noden.JS Runtime v8 options list
  • Sådan udskrives et lærred til en data-URL
  • Sådan bruges MongoDB med Node.JS
  • Pug Guide
  • installer en ældre version af en npm-pakke
  • Sådan bestemmer du, om en dato er i dag i JavaScript
  • Sådan skriver du en CSV-fil med Node.js
  • Node fil statistik
  • Parsing JSON med Node.js