Articles

Jak używać MongoDB z węzłem.js

2021 JavaScript pełny stos Bootcamp jest teraz otwarty dla rejestracji!

Jeśli nie jesteś zaznajomiony z MongoDB sprawdź nasz przewodnik na temat jego podstaw oraz jak go zainstalować i używać:)

będziemy używać oficjalnego pakietumongodb npm. Jeśli masz już węzeł.projekt js, nad którym pracujesz, zainstaluj go za pomocą

npm install mongodb

Jeśli zaczynasz od zera, utwórz nowy folder z terminalem i uruchom npm init -y, aby uruchomić nowy węzeł.projekt js, a następnie uruchom polecenienpm install mongodb.

podłączając się do MongoDB

wymagasz pakietu mongodb I otrzymujesz z niego obiekt MongoClient.

const mongo = require('mongodb').MongoClient

Utwórz adres URL do serwera MongoDB. Jeśli używasz MongoDB lokalnie, adres URL będzie podobny domongodb://localhost:27017, ponieważ27017 jest portem domyślnym.

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

następnie użyj metodymongo.connect(), aby uzyskać odniesienie do klienta instancji MongoDB:

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

teraz możesz wybrać bazę danych za pomocą metodyclient.db() :

const db = client.db('kennel')

Tworzenie i pobieranie kolekcji

możesz uzyskać kolekcję za pomocą metodydb.collection(). Jeśli kolekcja jeszcze nie istnieje, jest tworzona.

const collection = db.collection('dogs')

Wstaw dane do kolekcji dokument

Dodaj do aplikacji.js następująca funkcja, która używainsertOne() metody do dodania obiektudogs kolekcji.

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

możesz dodać wiele elementów za pomocąinsertMany(), przekazując tablicę jako pierwszy parametr:

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

Znajdź wszystkie dokumenty

użyj metodyfind() w kolekcji, aby uzyskać wszystkie dokumenty dodane do kolekcji:

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

Znajdź określony dokument

przekaż obiekt do find() metoda filtrowania kolekcji na podstawie tego, co musisz pobrać:

eśli wiesz, że chcesz uzyskać jeden element, możesz pominąć konwersję kursora przeztoArray(), wywołującfindOne():

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

zaktualizuj istniejący dokument

użyj metody updateOne(), aby zaktualizować dokument:

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

usuń dokument

użyj metody deleteOne(), aby usunąć dokument:

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

zamykanie połączenia

Po zakończeniu operacji można wywołać metodę close() na obiekcie klienta:

client.close()

użyj promises lub async/await

wszystkie te przykłady zamieściłem używając składni zwrotnej. To API obsługuje również obietnice (i asynchroniczne / oczekiwanie).

na przykład ten

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

może być używany z obietnicami:

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

lub asynchroniczne/oczekiwanie:

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

Pobierz mój darmowy węzeł.js Handbook

pełny Bootcamp JavaScript 2021 jest już otwarty dla rejestracji do przyszłego wtorku! Nie przegap tej okazji, Zarejestruj się już dziś!

więcej samouczków węzłów:

  • węzeł.lista opcji js Runtime v8
  • Jak wydrukować canvas na URL danych
  • Jak używać MongoDB z węzłem.js
  • Przewodnik po Pug
  • zainstaluj starszą wersję pakietu npm
  • Jak określić, czy data jest dzisiaj w JavaScript
  • Jak napisać plik CSV z węzłem.js
  • node file stats
  • parsowanie JSON z węzłem.js