Mongoose3.x版本用法

连接mongoDB
首先,我们需要定义一个连接,如果你的app仅仅使用一个数据库的话,那么你就使用mongoose.connect()方法,如果你需要创建更多的连接,那么你就使用mongoose.createConnection()方法。

无论是使用那种方法,里面的内容都是mongodb://url.或者host,database,port,options这样的参数。

var mongoose = require("mongoose");
mongoose.connect('mongodb://localhost/myproject');

一旦连接上,open事件就会在connection的实例化中被触发,如果你正使用mongoose.connect,那么这个Connection实例化对象就是mongoose.connection。换句话说,mongoose.createConnection返回值就是Connection。

注意:如果本地连接失败的话,请使用127.0.0.1代替localhost,因为有时候localhostname会被改变。

重点:mongoose缓冲所有的命令,直到连接到数据库。

定义一个模型
我们通过Schema的形式定义一个模型;

var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var BlogPost = new Schema({
    author    : ObjectId,
    title     : String,
    body      : String,
    date      : Date
});

除了能在你的文档中定义数据结构和数据类型之外,Schema还能处理以下定义:

    Validators (async and sync)
    Defaults
    Getters
    Setters
    Indexes
    Middleware
    Methods definition
    Statics definition
    Plugins
    pseudo-JOINs

以下这个例子就会展现出部分特征:

var Comment = new Schema({
  name: { type: String, default: 'hahaha' },
  age: { type: Number, min: 18, index: true },
  bio: { type: String, match: /[a-z]/ },
  date: { type: Date, default: Date.now },
  buff: Buffer
});

// a setter 
Comment.path('name').set(function (v) {
  return capitalize(v);
});

// middleware 
Comment.pre('save', function (next) {
  notify(this.get('email'));
  next();
});

接入数据模型

只要我们定义好一个模型,我们就可以通过mongoose.model(“模型名称”,mySchema),我们就可以接入。

var myModel = mongoose.model('ModelName');
var MyModel = mongoose.model('ModelName', mySchema);

mongoose会自动创建一个集合;

var MyModel = mongoose.model('Ticket', mySchema);

在上段代码中,mongoose就会在数据库中创建一个叫tickets的集合,注意啊,不是ticket.

一旦我们创建好一个模型,我们就可以实例化它。

var instance = new MyModel();
instance.my.key = "hello";
instance.save(function(err){
})

MyModel.find({},function(err,docs){
  console.log(docs)
})

当然我们也可以对其进行findOne,findById,update等等等。具体看这

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值