Mongoose简介

  Mongoose 官网地址:http://mongoosejs.com/   ,Mongoose 为node.js提供了优雅的,针对mongodb的ODM(Object Document Mapping,本质也属于一种ORM,不过是基于MongoDB、Redis这种NoSQL的)解决方案。

  下面通过实际例子进行体验,首先确保机器上安装好了MongoDB和Node.js。

  通过命令行安装Mongoose

       npm install mongoose

       假设我们想把碰到的小猫的信息都保存到MongoDB中,第一件事先引入mongoose模块,并声明一个mongoose连接,用来连接本地的test数据库,默认端口是27017

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

  现在我们有了一个未决的连接。如果我们成功连接,或者出现连接错误,我们需要得到通知:

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {   //一旦连接成功,将触发这个回调函数
  console.log( ' connected! ') ;   
});

   下面我们用真正的业务逻辑代码加入到上面的回调函数中

//定义一个Schema,类似于关系型数据库中的表结构//定义一个Schema,类似于关系型数据库中的表结构
varvar kittySchema =  kittySchema = newnew mongoose.Schema({
  name: String
}); mongoose.Schema({   name: S
//给 kittySchema 添加一个行为属性
kittySchema.methods.speak = function () {
  var greeting = this.name
    ? "Meow name is " + this.name
    : "I don't have a name";
  console.log(greeting);
}
//将一个schema映射成一个Model类
var Kitten = mongoose.model('Kitten', kittySchema);

//实例化一个Model对象
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak();

//持久化
fluffy.save(function (err, fluffy) {
    if (err) return console.error(err);
    fluffy.speak();
  });
                                 

下面再体验下查询:

//查询所有
Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens); })
//条件查询 Kitten.find({ name:
/^fluff/ }, function (err, kittens) { console.log(kittens[0].name) ; });

             

原文地址:https://www.cnblogs.com/hzhuxin/p/9603346.html