操作手册:
npmjs.com
搜索: mongodb
使用官方的 mongodb 包来操作
https://github.com/mongodb/node-mongodb-native //比较麻烦
使用第三方包 mongoose 来操作
mongoose 基于 MongoDB 官方的 mongodb 包再一次做了封装
官方网址: http://mongoosejs.com
mongo数据库连接
var mongoose = require('mongoose') var Schema = mongoose.Schema //连接数据库 //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建 mongoose.connect('mongodb://localhost/itcast')
// 设计集合结构(表结构)
// 字段名称就是表结构中的属性名称
// 值
// 约束的目的是为了保证数据的安全性, 不要有脏数据
/*var blogSchema = new Schema({
title : String,
author: String,
body : String,
comments: [{body : String, date : Date}]
hidden : Boolean,
meta : {
votes : Number,
favs : Number
}
});
*/
增加数据与表结构设计
var mongoose = require('mongoose') var Schema = mongoose.Schema //连接数据库 //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建 mongoose.connect('mongodb://localhost/itcast') // 设计集合结构(表结构) // 字段名称就是表结构中的属性名称 // 值 // 约束的目的是为了保证数据的安全性, 不要有脏数据 /*var blogSchema = new Schema({ title : String, author: String, body : String, comments: [{body : String, date : Date}] hidden : Boolean, meta : { votes : Number, favs : Number } }); */ // 2.设计文档结构 var userSchema = new Schema({ username : { type : String, required : true //必须有 }, password : { type : String, required : true }, email : { type : String } }) // 3.将文档结构发布为模型 // mongoose.model 方法就是用来将一个架构发布为 model // 第一个参数: 传入大写名词单数字符用来表示你的数据名称 // 例如 : 这里的User 最终会变为 users 集合名称 // 第二个参数: 架构 Schema // // 返回值: 模型构造函数 var User = mongoose.model('User', userSchema) // 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users // 增加数据 var admin = new User({ username: 'admin', password: '123456', email: 'admin@admin.com' }) admin.save( function (err, ret) { if (err) { console.log('保存失败') } else { console.log('保存成功') console.log(ret) } })
数据查询
var mongoose = require('mongoose') var Schema = mongoose.Schema //连接数据库 //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建 mongoose.connect('mongodb://localhost/itcast') // 设计集合结构(表结构) // 字段名称就是表结构中的属性名称 // 值 // 约束的目的是为了保证数据的安全性, 不要有脏数据 /*var blogSchema = new Schema({ title : String, author: String, body : String, comments: [{body : String, date : Date}] hidden : Boolean, meta : { votes : Number, favs : Number } }); */ // 2.设计文档结构 var userSchema = new Schema({ username : { type : String, required : true //必须有 }, password : { type : String, required : true }, email : { type : String } }) // 3.将文档结构发布为模型 // mongoose.model 方法就是用来将一个架构发布为 model // 第一个参数: 传入大写名词单数字符用来表示你的数据名称 // 例如 : 这里的User 最终会变为 users 集合名称 // 第二个参数: 架构 Schema // // 返回值: 模型构造函数 var User = mongoose.model('User', userSchema) // 4. 当我们有了模型构造函数之后, 就可以使用这个构造函数对 users // 增加数据 // var admin = new User({ // username: 'admin', // password: '123456', // email: 'admin@admin.com' // }) // admin.save( function (err, ret) { // if (err) { // console.log('保存失败') // } else { // console.log('保存成功') // console.log(ret) // } // }) // 查询数据 // 查询所有 // User.find(function (err, ret) { // if ( err ) { // console.log( err ) // } else { // console.log( ret ) // } // }) // 按条件查询 User.find({ username : 'zs' }, function (err, ret) { if (err) { console.log(err) } else { console.log( ret ) } })
// 按条件查询单个
User.findOne({ username : 'zs'}, function (err, ret) {
if (err) {
console.log(err)
} else {
console.log( ret )
}
})
删除数据
var mongoose = require('mongoose') var Schema = mongoose.Schema //连接数据库 //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建 mongoose.connect('mongodb://localhost/itcast') // 2.设计文档结构 var userSchema = new Schema({ username : { type : String, required : true //必须有 }, password : { type : String, required : true }, email : { type : String } }) // 增加数据 // var admin = new User({ // username: 'zs', // password: '123456', // email: 'admin@admin.com' // }) // admin.save( function (err, ret) { // if (err) { // console.log('保存失败') // } else { // console.log('保存成功') // console.log(ret) // } // }) var User = mongoose.model('User', userSchema) // 删除数据 User.remove({ username : 'zs' }, function (err, ret) { if ( err ) { console.log(err) } else { console.log('删除成功') console.log(ret) } }) var id = '59f9eb4cc2283e1bac7be51d'; var removestr = {'username': 'zs'}; User.findByIdAndRemove(id, removestr, function(err, res){ if (err) { console.log("Error:" + err); } else { console.log("Res:" + res); } }) var removestr = {'username': 'zs'}; User.findOneAndRemove(removestr, function(err, res){ if (err) { console.log("Error:" + err); } else { console.log("Res:" + res); } })
更新数据
var mongoose = require('mongoose') var Schema = mongoose.Schema //连接数据库 //指定连接的数据库不需要存在,当你插入第一条数据之后就会自动创建 mongoose.connect('mongodb://localhost/itcast') // 2.设计文档结构 var userSchema = new Schema({ username : { type : String, required : true //必须有 }, password : { type : String, required : true }, email : { type : String } }) var User = mongoose.model('User', userSchema) // 更新数据 var wherestr = {'username': 'admin'}; // 执行更新数据 var updatestr = {'password': 'abcdef'}; User.update(wherestr, updatestr, function(err, res) { if (err) { console.log(err); } else { console.log(res); } }); User.findOneAndUpdate({username : 'admin'},{ password : 'admin123' },function (err, ret) { if (err) { console.log(err) } else { console.log('更新成功') console.log(ret) } }) User.findByIdAndUpdate('5d528b7239a9cf20888515d5',{ password : 'admin123' },function (err, ret) { if (err) { console.log(err) } else { console.log('更新成功') console.log(ret) } })