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  

});

 

五、删除数据

删除条件:conditiondata格式参照模版,字段可为空)

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

    })

});

 

六、查询数据

查询条件:conditioncondition格式参照模版,字段可为空)

返回结果: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);

 

七、修改数据

修改哪些数据的条件:conditioncondition格式参照模版,字段可为空)

需修改为的字段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);

});