使用mongoose
链接数据库
mongoose的安装
安装后就可以通过require('mongoose')
导入来使用
链接字符串
创建一个db.js
1 2 3 4 5 6 7 8 9 10 11
| var mongoose = require('mongoose'), url = 'mongodb://localhost/test' mongoose.connect(url) var db = mongoose.connection db.on('error', console.error.bind(console, '链接错误')) db.once('open', function(res) { console.log('连接成功') })
|
调用 node db.js
即可运行
Schema
schema是mongoose里会用到的一种数据模式,可以理解为表结构的定义;每个schema会映射到mongodb中的一个collection,它不具备操作数据库的能力
我们先改造一下db.js,导出mongoose对象
1 2
| module.exports = mongoose
|
下面我们定义一个movie的Schema
, 命名为movie.js
1 2 3 4 5 6 7 8
| var mongoose = require('./db.js'), Schema = mongoose.Schema; var movieSchema = new Schema({ name : { type: String }, meta: {type: String}, url: {type: String} })
|
定义一个Schema,指定字段和类型, 内置类型如下:
- String
- Number
- Boolean | Bool
- Array
- Buffer
- Date
- ObjectId | Oid
- Mixed
Model
导出model
1 2 3 4 5 6 7 8 9 10
| var mongoose = require('./db.js'), Schema = mongoose.Schema; var movieSchema = new Schema({ name : { type: String }, meta: {type: String}, url: {type: String} }) module.exports = mongoose.model('movie', 'movieSchema')
|
基本操作
保存
Model#save([fn])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var Movie = require('./movie'); function insert () { var movie = new Movie({ name: '侠客行', url: '123', meta: '好看的电影', ftp: '下载地址' }) movie.save(function (err, res) { if (err) { console.log('错误', err) } else { console.log('成功', res) } }) } insert()
|
执行后则看到 数据库插入了一条数据
更新
Model.update(conditions, update, [options], [callback])
根据名称 更新下载地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var Movie = require('./movie'); function update () { var wherestr = { name: '侠客行' } var updatestr = { url: '更新后的地址' } Movie.update(wherestr, updatestr, function (err, res) { if (err) { console.log("错误:" + err); } else { console.log("更新成功:" + res); } }) } update()
|
更新后
删除
1 2 3 4 5 6 7 8 9 10 11
| function del () { var wherestr = {name: '侠客行'} Movie.remove(wherestr, function (err, res) { if (err) { console.log('未删除') } else { console.log('删除成功') } }) } del()
|