SUW15 – v42 – Introduktion till mongoose

Med npm modulen mongoose kan du koppla upp en Node.js server till mongodb och på så sätt hämta, skriva, och radera data från en eller flera collections med hjälp av mongoose models.

Koppla upp till mongodb

// require mongoose
var mongoose = require('mongoose');
// connect to a database
mongoose.connect('mongodb://localhost/<my_database_name>');

Om du inte har en lokal mongodb instans kan du peka om URL:en ovan till en address på nätet.

Skapa en model

Som du redan vet måste du skapa en mongoose model innan du kan börja arbeta med mongodb. Din model beskriver hur ett dokument i en collection kommer att se ut och vad för typ av data den kan innehålla.

// Create a new mongoose schema
var Schema = mongoose.Schema({
    msg: { type: String, required: true},
    user: { type: String, required: true},
    time: { type : Date, default: Date.now }
});

// Create the model
var Message = mongoose.model("Message", Schema);

Skapa ett nytt dokument

När du har skapat din model kan du börja skapa och spara data i mongodb.

// get the model
var myModel = mongoose.model('Message');

// new model instance with data
var aMessage = new myModel({
    msg: "Hello world!",
    user: "Admin"
});

// save data to DB (creates document)
aMessage.save(function(err) {
    if (err) { throw err; }
    console.log("Saved!", aMessage);
});

Hämta dokument från mongodb

Du kan även hämta dokument från databas och ställa frågor med mongo query operators.

// get all messages
myModel.find(function(err, allMsgs) {
    if (err) { throw err; }
    console.log("all messages in DB", allMsgs);
});

// get all messages by admin
myModel.find({user: "admin"}, function(err, allMsgs) {
    if (err) { throw err; }
    console.log("all messages in DB", allMsgs);
});

Glöm inte vårt tidigare inlägg om mongo query operators.

Läs mer

0 votes