Mongoose简单使用
本文仅作入门级参考,具体深入请自行研究官方API(http://mongoosejs.com/docs/api.html)
一、加载mongoose模块
var mongoose = require('mongoose');
二、连接mongo数据库
IP:'localhost'
数据库名:'quizpractice'
//db = mongoose.createConnection('localhost', 'quizpractice');
var db ;
try{
db = mongoose.connect('mongodb://localhost/quizpractice');
}catch(err){
console.log("err:"+err);
}
三、建立mongoose数据库模版
var answerSchema = new mongoose.Schema({
O_id: 'String',
studentid:'String',
questionid:'String',
answer:'String',
isright:'String',
rightanswer:'String',
lesson_uuid:'String',
totaltime:'String'
})
Answer = db.model('Answer', answerSchema);
四、存储数据
数据库表名:'Answer'(如果存在,直接将data插入,如果不存在,新建此表插入data)
Answer = db.model('Answer', answerSchema);
//将需插入的数据data转化为模版
var ans = new Answer(data);
//插入数据库
ans.save(function (err) {
if (err){
console.log('save error');
}else{
console.log('save success');
} // TODO handle the error
});
五、删除数据
删除条件:condition(data格式参照模版,字段可为空)
Answer.remove(condition, function (err, ans) {
if (err) return handleError(err);
//下面代码仅为证明已删除
console.log("kitten._id:"+ ans._id);// undefined
Answer.findById(kitten._id, function (err, ans) {
console.log("ans:"+ ans) // null
})
});
六、查询数据
查询条件:condition(condition格式参照模版,字段可为空)
返回结果:answers(查询结果形式[{……},{……},{……}])
Answer.find(condition, function(err,answers){
if (err) {
console.err(err);
}else{
获取answers,处理
}// TODO handle err
})
第二种查询方式
var query = Answer.find();
query
.where('age')
.gte(21)
……
.exec(callback);
七、修改数据
修改哪些数据的条件:condition(condition格式参照模版,字段可为空)
需修改为的字段updatedata(格式参考模版,有的字段就修改,没有的不修改)
Answer.update(condition, {
$set: updatedata
}, {safe: false, multi: true}, function (err, numberAffected, raw) {
if (err) return handleError(err);
console.log('The number of updated documents was %d', numberAffected);
console.log('The raw response from Mongo was ', raw);
});