01.js
//引包 var mongoose = require(‘mongoose‘); //创建一个数据库连接 mongoose.connect(‘mongodb://localhost/test‘); //创建一个Cat类。 语法mongosse.model(模型名字,Schema); //这里省略了一步,就是schema是通过new mongoose.schema({})创建的(类工厂)。 var cc = mongoose.model(‘Cat‘, { name: String , age : Number , sex : String }); //对象 var kitty = new cc({ name: "汤姆" , "sex" : "公猫"}); //var kitty1 = new cc({ a: "汤姆"}); 是不行的,因为schema定了。 kitty.save(function (err) { console.log(‘meow‘); }); //寻找汤姆猫,将它改为8岁。 cc.find({"name":"汤姆"},function(err,result){ console.log(result);//一条记录 var xiaomao = result[0]; //xiaomao这个变量是一个Cat的实例 xiaomao.age = 8; xiaomao.save(); });
02.js
/** * mongoose官网中,Guide是学习路线,API Doc是api接口。 索引不能重复,查找快 */ var mongoose = require(‘mongoose‘); mongoose.connect(‘mongodb://localhost/test‘); var db = mongoose.connection; db.once(‘open‘, function (callback) { console.log("数据库成功打开"); }); //博客的结构(Schema是类的模版或者是一个创建类的工厂,他创建的类有这些属性) var blogSchema = new mongoose.Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }], date: { type: Date, default: Date.now }, hidden: Boolean, meta: { votes: Number, favs: Number } }); //这个工厂创建的类还有这个方法(对象也有) blogSchema.methods.showInfo = function(){ console.log(this.title); } //通过工厂创建一个有名类,类的名字是Blog,也可以是别的名字。 var bb = mongoose.model(‘Blog‘, blogSchema); var blog = new bb({//Blog类的对象 "title" : "博客测试", "author" : "考拉" }); //blog.save(); blog.showInfo();
03.js
mongoose.connect(‘mongodb://localhost/test‘); var db = mongoose.connection; db.once(‘open‘, function (callback) { console.log("数据库成功打开"); }); //博客的结构(类工厂,工厂创建的类有这些属性) var animalSchema = new mongoose.Schema({ "name" : String, "type" : String }); //工厂创建的类有这些方法(对象也有) animalSchema.methods.zhaotonglei = function(callback){ this.model(‘Animal‘).find({"type":this.type},callback); } //通过schema工厂创建一个有名的Animal类 var Animal = mongoose.model(‘Animal‘, animalSchema); //creat是类的方法,创建对象。 Animal.create({"name":"汤姆","type":"猫"}); Animal.create({"name":"咪咪","type":"猫"}); Animal.create({"name":"小白","type":"狗"}); Animal.create({"name":"snoopy","type":"狗"}); Animal.findOne({"name":"小白"},function(err,result){ var dog = result;//result是Animal的实例 dog.zhaotonglei(function(err,result){ console.log(result); }); });
04.js
/** * Created by Danny on 2015/9/29 10:18. */ var mongoose = require(‘mongoose‘); mongoose.connect(‘mongodb://localhost/test‘); var db = mongoose.connection; db.once(‘open‘, function (callback) { console.log("数据库成功打开"); }); //博客的结构 var blogSchema = new mongoose.Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }] }); //发表评论 blogSchema.methods.pinglun = function(obj,callback){ this.comments.push(obj); this.save(); } var Blog = mongoose.model(‘Blog‘, blogSchema); //var blog = new Blog({ // "title" : "哈哈哈", // "author" : "考拉", // "body" : "哈哈哈哈" //}); //寻找一个标题是哈哈哈的博客,然后发表评论 Blog.findOne({"title":"哈哈哈"},function(err,blog){ if(!blog){ return; } blog.pinglun({"body":"再来一个评论","date" : new Date()}); });
05.js
/** * Created by Danny on 2015/9/29 10:18. */ var mongoose = require(‘mongoose‘); mongoose.connect(‘mongodb://localhost/xuanke‘); var db = mongoose.connection; db.once(‘open‘, function (callback) { console.log("数据库成功打开"); }); //学生工厂 var studentSchema = new mongoose.Schema({ "name" : String, "age" : Number, "sex" : String }); //实例方法,涨一岁 studentSchema.methods.zhangyisui = function(){ this.age++; this.save();//改变数据库,要save() } //学生类 var Student = mongoose.model("Student",studentSchema); //课程工厂 var kechengSchema = new mongoose.Schema({ "name" : String, "info" : String, "student" : [studentSchema]//课程表里面会有学生的全部json,不是外键 }); //添加学生 kechengSchema.methods.tianjiaxuesheng = function(studentObj,callback){ this.student.push(studentObj); this.save(function(){ callback(); }); } kechengSchema.methods.zhaoxuesheng = function(num,callback){ //要通过学生类去找,this是课程对象, Student.findOne({"name":this.student[num].name},function(err,result){ callback(err,result); }); } //课程类 var Kecheng = mongoose.model("Kecheng",kechengSchema); //实例化几个学生 var xiaoming = new Student({"name":"小明","age":12,"sex":"男"}); xiaoming.save(); Student.creat({"name":"小hua","age":10,"sex":"nv"}); var shuxue = new Kecheng({ "name" : "数学课", "info" : "学数学的" }); shuxue.tianjiaxuesheng(xiaoming,function(){ console.log("添加成功"); }); //寻找学生小明 Student.findOne({"name":"小明"},function(err,student){ student.zhangyisui();//学生表改了,课程表没改, }); //通过课程找学生 Kecheng.findOne({"name":"数学课"},function(err,kecheng){ kecheng.zhaoxuesheng(0,function(err,result){ result.zhangyisui(); console.log(result); }); });
时间: 2024-10-17 00:10:23