Schema Files of our example

FileName: users.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var usersSchema= new Schema({
	userid:{type:String,index:true,unique:true,trim:true,required:true},
	password:{type:String,default:"1234567"},
	balancechips:{type:Number,default:0.0},
	state:{type:Number,default:2},
	emailid:{type:String,required:true,match: /.+\@.+\..+/,index:true}
},{collection:'users'});
 
usersSchema.statics.getId=function(_userid,cb){
	 console.log("userid"+_userid);
	 return UserModel.find({ userid: new RegExp(_userid, 'i') },{userid:1,_id:1}, cb);
};

usersSchema.methods.getUserId=function(_userid,cb){
	console.log("userid"+_userid);
	 return UserModel.find({ userid: new RegExp(_userid, 'i') },{userid:1,_id:1}, cb);
};
UserModel = mongoose.model('Users',usersSchema);

module.exports={UserModel}; 

FileName: address.js

var mongoose = require('mongoose');
var users = require('./users');
var Schema = mongoose.Schema;

var addressSchema= new Schema({
	userid:{type:Schema.Types.ObjectId,ref:'users',required:true},
	addresstype:{type:String,default:"Residence"},
	city:{type:String},
	state:{type:String},
	country:{type:String},
	pincode:{type:Number,required:true}
},{collection:'address'});
 
AddressModel = mongoose.model('Address',addressSchema);

module.exports={AddressModel};

FileName: games.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var gamesSchema= new Schema({
	gameid:{type:String,index:true,unqiue:true},
	gamename:{type:String,trim:true},
	state:{type:Number,default:0},//0 Inactive 1 active
	minbet:{type:Number,default:1.0},
	maxbet:{type:Number,deafult:1000.0}
},{collection:'games'});
GamesModel = mongoose.model('Games',gamesSchema);
module.exports={GamesModel}; 

FileName: loginsession.js

var mongoose = require('mongoose');
var users = require('./users');
var Schema = mongoose.Schema;

var loginsessionSchema= new Schema({
	userid:{type:Schema.Types.ObjectId,ref:'Users',required:true},
	sessionid:{type:String,index:true,unqiue:true},
	ip:{type:String,trim:true},
	startworth:{type:Number,default:0},
	endworth:{type:Number,default:0},
	logintime:{type:Date,default:new Date()},
	logouttime:{type:Date,default:new Date()},
	totalbet:{type:Number,default:0.0},
	totalwin:{type:Number,default:0.0}
},{collection:'loginsession'});
LoginsessionModel = mongoose.model('LoginSession',loginsessionSchema);
module.exports={LoginsessionModel}; 

FileName: gameplaylogs.js

var mongoose = require('mongoose');
var users = require('./users');
var ls = require('./loginsession');
var games = require('./games');
var Schema = mongoose.Schema;

var gameplaylogsSchema= new Schema({
	logid:{type:String,index:true,trim:true,unique:true,required:true},
	userid:{type:Schema.Types.ObjectId,ref:'Users',required:true},
	sessionid:{type:Schema.Types.ObjectId,ref:'LoginSession',required:true},
	gameid:{type:Schema.Types.ObjectId,ref:'Games',required:true},
	playdetails:{type:String,trim:true},
	betamount:{type:Number,default:0},
	winamount:{type:Number,default:0},
	playtime:{type:Date,default:new Date()},
},{collection:'gameplaylogs'});
GameplaylogsModel = mongoose.model('GamePlayLogs',gameplaylogsSchema);
module.exports={GameplaylogsModel}; 

FileName: database.js

var mongoose = require('mongoose');
var con;
var conflag=false;
var init=function initdb(){
	mongoose.connect("mongodb://localhost/tutorialtous",callback);
}
var callback = function(err,data){
	if(err)
		console.log(err);
	else{
		console.log("connection success");
		conflag=true;
		con = mongoose.connection;
	}	
}	
module.exports={con,init,conflag};