Next install Mongoose from the command line using :
Now say we like fuzzy kittens and want to record every kitten we ever meet in MongoDB. The first thing we need to do is include mongoose in our project and open a connection to the test
database on our locally running instance of MongoDB.
// getting-started.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});
We have a pending connection to the test database running on localhost. We now need to get notified if we connect successfully or if a connection error occurs:
const db = mongoose.connection;
db.once('open', function() {
});
Once our connection opens, our callback will be called. For brevity, let’s assume that all following code is within this callback.
So far so good. We’ve got a schema with one property, name
, which will be a String
. The next step is compiling our schema into a .
const Kitten = mongoose.model('Kitten', kittySchema);
A model is a class with which we construct documents. In this case, each document will be a kitten with properties and behaviors as declared in our schema. Let’s create a kitten document representing the little guy we just met on the sidewalk outside:
const silence = new Kitten({ name: 'Silence' });
Kittens can meow, so let’s take a look at how to add “speak” functionality to our documents:
Functions added to the methods
property of a schema get compiled into the prototype and exposed on each document instance:
const fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak(); // "Meow name is fluffy"
fluffy.save(function (err, fluffy) {
if (err) return console.error(err);
fluffy.speak();
Say time goes by and we want to display all the kittens we’ve seen. We can access all of the kitten documents through our Kitten model.
We just logged all of the kittens in our db to the console. If we want to filter our kittens by name, Mongoose supports MongoDBs rich syntax.
Kitten.find({ name: /^fluff/ }, callback);
This performs a search for all documents with a name property that begins with “fluff” and returns the result as an array of kittens to the callback.
That’s the end of our quick start. We created a schema, added a custom document method, saved and queried kittens in MongoDB using Mongoose. Head over to the guide, or for more.