三好先森|Node.js 学习笔记:使用数据库( 三 )
4、保存所有文件后 , 在code/06_database/mongodb目录下执行node useMongodb.js命令 , 结果如下:
使用mongoose包
- 在code/06_database/mongodb目录下执行npm install mongoose命令 , 将mongoose包安装到当前示例项目中 。
- 在code/06_database/mongodb目录下执行touch useMongoose.js , 创建一个脚本文件 , 具体如下:
const server = 'mongodb://localhost:27017'const dbName = 'hrdb'const collName = 'hr_table'const dbPath = server + '/' + dbNameconst mongoose = require('mongoose');const async = require('async')const Schema = mongoose.Schemaconst hrSchema = new Schema({name : {type : String,required: true},age : {type : String,required: true},sex : {type : String,required: true},items : {type : String,required: true}})const hrModel = new mongoose.model('Hrobj', hrSchema)mongoose.connect(dbPath, {useNewUrlParser: true});const conn = mongoose.connectionconn.on('error', console.error.bind(console, '连接错误:'))conn.on('open', console.log.bind(console, '数据库连接成功'))conn.on('disconnected', console.log.bind(console, '断开数据库连接'))conn.once('open', function(){async.series([function(callback) {// 插入单条数据const someone = new hrModel ({name : '杨过',age : '42',sex : '男',items : '看书, 喝酒, 习武'})someone.save(function(err, one){callback(err, one.name+'的数据插入成功')})},function(callback) {hrModel.find(function(err, hrTable){callback(err, '插入一条数据后的结果:' + hrTable)})},function(callback) {// 插入多条数据const dataArray = [{name : '小龙女',age : '24',sex : '男',items : '看书, 唱歌, 习武'},{name : '郭靖',age : '52',sex : '男',items : '看书, 喝酒, 习武'},{name : '黄蓉',age : '45',sex : '女',items : '看书, 绘画, 习武'},{name : '雅典娜',age : '24',sex : '女',items : '看书, 音乐, 被救'},{name : '阿波罗',age : '24',sex : '女',items : '看书, 音乐, 被救'}]hrModel.insertMany(dataArray, function(err) {callback(err, '数组中的数据插入成功')})},function(callback) {hrModel.find(function(err, hrTable){callback(err, '插入多条数据后的结果:' + hrTable)})},function(callback) {hrModel.updateMany({sex:'男'}, {sex:'女'}, function(err, one){callback(err, '将所有男人改为女人')})},function(callback) {hrModel.updateOne({name:'阿波罗'}, {sex:'男'}, function(err, one){callback(err, '将阿波罗的性别改为:男')})},function(callback) {hrModel.find({age:'24'}, function(err, hrTable){callback(err, '所有年龄为24的数据:' + hrTable)})},function(callback) {hrModel.findOne({age:'24'}, function(err, hrTable){callback(err, '第一个年龄为24的结果:' + hrTable)})},function(callback) {hrModel.deleteMany({age:'24'}, function(err, hrTable){callback(err, '所有年龄为24数据已被删除')})},function(callback) {hrModel.find({age:'24'}, function(err, hrTable){callback(err, '所有年龄为24的数据:' + hrTable)})},function(callback) {hrModel.deleteMany({}, function(err, hrTable){callback(err, '所有数据已被删除')})},function(callback) {hrModel.find(function(err, hrTable){callback(err, '删除所有数据后的结果:' + hrTable)})},function(callback) {mongoose.disconnect(function(err){callback(err, '正在断开连接……')})}], function(err, message) {if ( err !== null ) {return console.error('错误信息:' + err.message)}console.log(message)})})
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 三好先森|技术与人类的关系到底是什么?
- 阿狸先森|现今如何了?,被联想198亿元收购的巨头摩托罗拉
- 三好先森|「精选」20个黑科技软件下载网站,让你再无找不到的软件
- 阿狸先森|被联想198亿元收购的巨头摩托罗拉,现今如何了?
- 小胖先森|或是华米第一款联名手表?,华米预热新品
- 小胖先森|Hero 9 Black运动相机曝光,GoPro
- 三好先森|基于JeecgBoot快速开发简历库系统,开源项目,实操分享
- 三好先森|「智能家居」小米碰碰贴2使用体验,米家有了新的玩法
- 三好先森|腾讯也扶不起的“阿斗”,十年败光1亿用户,刚刚正式叫停了
- 阿狸先森|是时候跟百度网盘的龟速下载说拜拜了
