定义模式 Schema -> 定义模型 model -> 定义实例 -> 增查删改这个实例
在模式中可以直接定义一些方法,使得使用模型生成的实例都继承了这些方法,可直接调用。
快速开始
var mongoose = require('mongoose'); // 【模式】 var UserSchema = mongoose.Schema({ name: String, age: Number }) // 【方法】在模式中添加一个方法,则生成的实例中将可以直接调用这个方法 UserSchema.methods.say = function () { var name = this.name; if (name) { console.log('我的名字是:', name); } else { console.log('我还没有名字'); } }; // 【模型】使用模式定义一个模型 var User = mongoose.model('User', UserSchema); // 【实例】使用模型定义一个实例 var newUser = new User({ name: '小赖', age: 18 // 我年年十八 }) // 【实例】使用模型定义一个实例 var r = parseInt(Math.random() * 10 + 20); var newUserRandom = new User({ name: '用户'+r, age: r // }) // 实例中调用模式中定义好的方法 newUser.say(); // => '我的名字是:小赖' newUserRandom.say(); // 【增】将实例保存到数据库 newUser.save(function (err, newUser) { if (err) throw err; console.log('【增】保存数据成功, 成功保存的数据是:\n', newUser); }); // 【增】将实例保存到数据库 newUserRandom.save(function (err, newUser) { if (err) throw err; console.log('【增】保存数据成功, 成功保存的数据是:\n', newUserRandom); }); // 【查】查询所有文档 User.find(function (err, users) { if (err) throw err; console.log('【查】当前数据库的所有用户是:\n', users); }); // 【查】限定条件查询 User.find({age: 20}, function (err, users) { if (err) throw err; console.log('查询到年龄为20的用户有:\n', users); }) // 连接数据库 mongoose.connect('mongodb://localhost/test'); // 获取连接 var db = mongoose.connection; // 连接错误 db.on('error', function (err) { console.log('连接失败:', err); }); // 连接成功 db.on('open', function () { console.log('连接成功!'); })