Mady
Mady

Reputation: 5286

How to use MongoDB with mean.io

I am new to server side javascipt. I have started with mean.io. I gained some understanding of nodejs, express, mongodb last few days. I have my mean.io app but I don't know what's the right way to connect to mongodb and query it from my js files.
Is there a guide/blog which can help me work with mongodb from my server side javascript files?
All I want is to store some data mongodb and fetch that at some later point.

Upvotes: 3

Views: 3787

Answers (2)

Mady
Mady

Reputation: 5286

I couldn't find one related to mean.io but below few links helped me get started with mean.io.

http://cwbuecheler.com/web/tutorials/2013/node-express-mongo/
https://www.youtube.com/watch?v=AEE7DY2AYvI
https://www.youtube.com/watch?v=5e1NEdfs4is

Edit:
Past few days I have been working on it and by test & learn I was able to got things working for me. I'll share whatever I know till now.

  • So mean.io use mongoose ODM to connect to the mongodb.
  • mean.io would automatically connect to your DB. You can configure DB name in development.js db: 'mongodb://localhost/myDB'. So you won't have to worry about connecting to mongoDB. You just need to start the mongoDB using mongod.

How to use mongoose?

To use mongoose to connect to mongoDB you need to build schemas. You can do so in myApp/app/models directory, since they represents models.

Sample model file user.js

var mongoose = require('mongoose');  
var Schema = mongoose.Schema;  
var userSchema = new Schema({  
    name: String,
    email: String,
    DOB  : Date,
    address: {  
              house_no: String,  
              street: String  
             }  
});  

module.exports = mongoose.model('tbl_user',userSchema);  

Note:- tbl_user would be stored as tbl_userS in DB.

How to save data to mongoDB?

One would generally do save to DB in controller. Below I have shown how one can do this.
To make models available to all controller one need to write this piece of code in server.js so that all your models get registered during server startup. Alternatively, import individual models using require('tbl_user').

Server.js :-

var models_path = __dirname + '/app/models';
    var arrFiles = fs.readdirSync(models_path);
    arrFiles.forEach(function(file){
        if(file.indexOf('.js') > 0){
            require(models_path + '/' + file);
        }

    });

controller code myApp/app/controllers/myController.js

var mongoose = require('mongoose');
var jsonEntry = {'name':'Mady', 'email':'[email protected]', 'address':{'house_no':12N, 'stree':'abc'}};
var User = mongoose.model('tbl_user');
var user = new User(jsonEntry);
user.save();  

The above code would create and update the tbl_users collection in mongoDB.

Upvotes: 3

wilbeibi
wilbeibi

Reputation: 3454

By default, you should see there is a mean-dev collection in your mongodb. The best way I thought to get familiar with mongo and mean is play around the code (for instance, the article package). Inside /packages/article/system/, you will see how the blog example works.

That works great for me.

Upvotes: 3

Related Questions