有关数据库的有用的一些 api,便是mongoose. 在node开发中,底层去处理更多的细节。加快开发速度,维护更少的代码。
启动mongodb服务器,建立mongodb连接
安装mongoose
npm install mongoose
建立连接
var mongoose = require('mongoose')
// 连接tasks的数据库
var db = mongoose.connect('mongodb://localhost/tasks')
// 注册schmea,使用mongoose去管理数据时,需要注册schema
var Schema = mongoose.Schema
var Tasks = new Schema({
project: String,
description: String
})
// 通过访问schma,去带动mongoose工作
mongoose.model('Task', Tasks)
var Task = mongoose.model('Task')
var task = new Task()
可以直接省略为一句话
var task = mongoose.model('Task', Tasks)
添加项目
一项:
task.project = 'bikeshed'
task.description = 'do you know the mongoose'
task.save(function(err) {
if (err) throw err;
console.log('task saved')
})
// save 只可以保存 单项
//且 var task = new Task() 不可少
多项任务:
var taskArr = [{project: '00', description: '00'}, {project: '11', description: '11'}]
/// 保存
task.collection.insert(taskArr, onInsert)
function onInsert(err, taskArr) {
if (err) throw err;
console.log('task saved array')
}
or
task.create(taskArr, function(err, small) {
if (err) throw err;
console.log('task saved array create')
})
查询项目
var Task = mongoose.model('Task', Tasks)
Task.find({'project':'00'}, function(err, tasks) {
for (var i = 0; i < tasks.length; i++) {
console.log('id' + tasks[i]._id);
console.log(tasks[i].description)
}
})
更新项目
var Task = mongoose.model('Task', Tasks)
// 根据id去找该项记录, 修改description
Task.update({_id: 'XXXX'}, {description: 'XXX'}, {multi: false})
删除项目
var Task = mongoose.model('Task');
Task.findById('XXXXXX', function(err, task) {
task.remove()
})