mongoDBmongoose

mongoose学习笔记3之Models

2017-01-14  本文已影响37人  打铁大师

假设以下代码都运行在

let mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
let db = mongoose.connection;
db.on('error', () => {
  console.error('链接失败');
});
db.once('open', function () {
  //下面讲到的所有代码都在这里运行
});

Model

模型是从我们的模式定义编译的构造函数。这些模型的实例表示可以从我们的数据库保存和检索的文档。来自数据库的所有文档创建和返回都由这些模型处理。

编译你的第一个model

let schema = new mongoose.Schema({name:'string'});
let Tank = mongoose.model('Tank',schema);

构造文档

文档是我们模型的实例。创建它们并保存到数据库很容易:

  let Tank = mongoose.model('Tank',schema);
  //创建文档
  let small = new Tank({name:"nick"});
 //保存文档
  small.save(function(err){
  if(err){
    return console.error(err);
  }
})

或者

    let Schema = mongoose.Schema;
    let schema = new Schema({
        name:String
    });
    let Person = mongoose.model('Person',schema);
    //创建并保存文档
     Person.create({name:'noshower'},function(err,man){
        if(err){
                return console.error(err);
        }
       //此时成功保存到数据库
    });

Querying (查询)

使用Mongoose查找文档很容易,Mongoose支持MongoDB的丰富的查询语法。文档可以使用每个模型的方法查找。

Tank.find({ size: 'small' }).where('createdDate').gt(oneYearAgo).exec(callback);

Removing( 删除)

模型有一个静态的方法--remvoe,可以用它来删除所有匹配的文档。

Person.remove({name:"noshower"},function(err){
  if(err){
    return console.error(err);
  }
  //删除成功
})

Updating(更新)

每个模型都有自己的更新方法,用于修改数据库中的文档,而不会将其返回到应用程序。

上一篇 下一篇

猜你喜欢

热点阅读