node.js-mongoose
阿新 • • 發佈:2018-11-21
mongoose
cnpm install -g mongoose
三方模組需要手動安裝。
cnpm
安裝比較快,安裝cnpm
請移步。
source.js
const mongoose = require('mongoose');
const source_url = 'mongodb://localhost:27017/godme';
mongoose.connect(source_url);
mongoose.connection('connected', function(){
console.log('connected success with source_url : ' , source_url);
});
mongoose.connection('error', function(error){
console.log('connect error : ', error);
});
mongoose.connection('disconnect', function(){
console.log('disconnected !');
});
module.exports = mongoose;
mongoose
:模組匯入
source_url
:連線地址
connect
:發起連線
connection
:監聽事件
module.exports
person.js
const mongoose = require('./source.js');
const Schema = mongoose.Schema;
var PeresonSchema = new Schema({
name : {type : String},
male : {type : String},
age : {type : Number}
});
module.exports = mongoose.model('Person', PersonSchema);
mongoose
:同一個源
Schema
:格式
PersonSchema
Person
格式
model
:生成模型
save.js
const Person = require('./person.js');
var person = new Person({
name : 'godme',
male : 'male',
age : 99
});
person.save(function(err, result){
if(err){
console.log('save error : ', err);
return;
}
console.log('save success : ' , result);
})
Person
:取出模型
person
:通過模型直接new
save
:物件直接儲存,可設定回撥方法
update.js
const Person = require('./person.js');
var where = {'name' : 'godme'}
var update = {'age' : '123'}
Person.update(where, update, function(error, result){
if(error){
console.log('update error : ', error);
return;
}
console.log('update success : ', result);
});
Person
:同源,靜態呼叫即可
update
:更新方法,先篩選,後更新,可回撥
ID.js
const Person = require('./person.js');
var ID = '5bd95321242daf65e4347ea4';
var update = {'name' : 'judas'};
Person.findByIdAndUpdate(ID, update, function(error, result){
if(error){
console.log('update error : ', error);
return;
}
console.log('update success : ', result);
});
findByIdAndUpdate
:where
換成ID
delete.js
const Person = require('./person.js');
var where = {'age' : 123};
Person.remove(where, function(err, result){
if(err){
console.log('remove error : ', error);
return;
}
console.log('remove result : ', result);
});
remove
:即delete
where
:篩查條件
search.js
const Person = require('./person.js');
var where = {'name' : 'godme'};
Person.find(where, function(err, result){
if(err){
console.log('find error : ', error);
return;
}
console.log('find result : ', result);
});
- options
const Person = require('./person.js'); var where = {'name' : 'godme'}; var options = {'age':0,'_id':0,'_v':0 }; Person.find(where, function(err, result){ if(err){ console.log('find error : ', error); return; } console.log('find result : ', result); });
options
中要麼全1
要麼全0
,交雜會報錯。
- 範圍限定
{age: {$gte: 18, $lte: 30}}; // 18 <= age <= 30
- id
var ID = '5bd95ae2272adb6bd01d91f9' Person.findById(ID, function(err, result){ if(err){ console.log('find error : ', err); return; } console.log('find result : ', result); });
- count
Person.count({}, function(err, result){ if(err){ console.log('count error : ', err); return; } console.log('count : ', result); })
- 正則模糊
Person.find({'name' : {$regex : /^g/}}, function(err, result){ if(err){ console.log('find error : ', err); return; } console.log('find result : ', result); })
- 分頁綜合
const Person = require('./person.js'); var condition = {}; var show = {'_id':0,'__v':0,'male':0}; var pageSize = 5; var order = {'age':1}; for(var currentPage = 0; currentPage < 5; currentPage++){ var skipCount = currentPage * pageSize; Person.find(condition, show) .skip(skipCount) .limit(pageSize) .sort(order) .exec(function(err, resultList){ if(err){ console.log('page search Error : ', err); return; } console.log('page search size : ', resultList.length); resultList.forEach(function(result){ console.log('- single : ', result); }); }); }
嗯,老操作,自我體會。
如果對
mongo
不太熟悉的,可以參閱一下這一篇,基本用法都有介紹。
index.js
const mongoose = require('./source.js');
const Schema = mongoose.Schema;
const PersonSchema = new Schema({
name : {type : String, index : true},
age : {type : String},
lastLogin : {type : Date , default : Date.now}
});
module.exports = mongoose.model('Person', PersonSchema);
index
:指定為索引
default
:設定預設值