mongoose 的 model,query:增刪改查

簡介

mongoose是node.js的一個操做mongodb的模塊,比起以前mongodb模塊,只須要在開始時鏈接,不須要手動關閉,十分方便。javascript

鏈接mongodb

首先你須要安裝mongodb。
有了mongodb,你須要引入mongoose模塊。html

require('mongoose');

而後取鏈接mongodbjava

mongoose.connect('mongodb://localhost/myapp');//location是數據庫地址,myapp爲db名字
//mongoose.connect('mongodb://username:password@host:port/database?options...');

Model

要定義model首先須要定義一個schema.node

var schema = new mongoose.Schema({ name: String, age: Number });
//定義model
var personModel = mongoose.model('person', schema);//person爲collection名

model適合簡單查詢,保存,修改和刪除。
保存一條新數據:mongodb

var saveobj = new persionModel({name:'小明',age:15});
saveobj.save(function(err){
    if(err){
        console.log('save error')
    }else{
        console.log('save successs');
    }
});

查詢記錄數據庫

var query_doc = {age:15};//查詢條件
persionModel.find(query_doc,function(err,data){
    if(err){
        console.log('query error');
    }else{
        console.log(data);//此時查詢結構爲一個數組
    }
});

查詢一條記錄api

var query_doc = {age:15};
personModel.findOne(query_doc,function(err,data){
    if(err){
        console.log('query one error');
    }else{
        console.log(data);//此時爲一個結果對象
    }
});

修改一條數據數組

var update_where = {name:'李四'};//更新條件
var update_data = {age:14};//更新數據
personModel.update(update_where,{$set:update_data},function(err){
    if(err){
        console.log('update error');
    }else{
        console.log('update success');
    }
});

刪除一條數據app

var del_where = {name:'小明'};//刪除條件
personModel.remove(del_where,function(err){
    if(err){
        console.log('delete error');
    }else{
        console.log('delete success');
    }
});

Query

query適合複雜的查詢。
首先獲取一個query:mongoose

var query = personModel.find({});//當不帶回調時會返回一個query對象
query
    .skip(10)//跳過十行記錄
    .limit(10)//查詢十行記錄
    .sort({_id:-1})//按id逆序排列
    .where('age').gt(17).lt(66)//age字段大於17小於66
    .exec(function(err,data){
    //回調函數,do some thing
});

簡單的mongoose操做mongodb就這麼多啦,更多內容能夠查看手冊。http://www.nodeclass.com/api/mongoose.html

相關文章
相關標籤/搜索