node中mongodb数据库的使用(下载使用mongoose包)及mongodb数据库的常用命令
1.mongodb常用命令:
mongod :启动数据库 (配置完后mongodb默认数据存储路径为安装磁盘根目录下(cmd也在该目录下打开)data/db,所以需要自己新建这两个文件夹,才可以用mongod直接启动。如果把data/db两个文件夹建在其它位置需用 mongod --dbpath=数据存储目录路径 这样修改默认存储目录路径来启动(我的是 mongod --dbpath=D:\web\Mongodb\data\db),并推荐直接在mongodb安装文件夹的根目录启动cmd,要连接数据库另开一个cmd即可)
Ctrl + C :关闭数据库
mongo :连接数据库(推荐直接在mongodb安装文件夹的根目录启动) ;exit :退出数据库
show dbs :查看所有数据库(如果当前所在目录是空的就不会出现在查看列表只能通过 db 来查看)
db :查看当前所在数据库(就算当前所在目录是空的一样会显示出来)
use 数据库名称 :切换至为该名称的数据库(如果没有就自动新建一个并切换)
db.students(自定义集合).inserOne({"name": "jack", "age": 18 }) (自定义文档数据):往数据库中创建集合及文档数据(想往哪个数据库中添加先切换至那个数据库再操作)
db.createCollection("user") :创建集合(创建数据库)
show collections :查看当前数据库里的集合(数组)(想看哪个数据库的集合先切换至那个数据库再操作)
db.students(自定义集合).find() :查看students集合里的文档(集体数据或叫对象)(想看哪个数据库的集合里的文档先切换至那个数据库找到要查看的集合再操作)
db.dropDatabase() :删除数据库(先db到要删除的数据库)
db.user.drop() :删除集合
db.user.remove({'username':'秀秀'}) :删除某一条数据
2.node中操作mongodb(下载使用mongoose包):
背景:MongoDB 官方有一个 mongodb 的包可以用来操作 MongoDB 数据库,这个确实和强大,但是比较原始,麻烦,所以咱们不使用它。真正在公司进行开发,使用的是 mongoose 这个第三方包,它是基于 MongoDB 官方的 mongodb 包进一步做了封装,可以提高开发效率(官方网址:mongoosejs.com)
2.1.下载包:npm i mongoose (官网:mongooosejs.com/docs/api )
2.2.构建基本结构:
var mongoose = require('mongoose') //引用 var Schema = mongoose.Schema //使用Schema方法构建约束 mongoose.connect('mongodb://localhost/itcast') //连接itcast数据库(先开启mongodb) var bogeSchema = new Schema({ username: { type: String, // 类型必须为字符 required: true // 且必须有 }, password: { type: String, required: true }, email: { type: String },
gender: {
type: Number, //类型必须为数据
enum: [0, 1], //枚举 0,1(只能为 0 或者 1)
default: 0 //默认为 0
} }) //设计约束 module.exports = mongoose.model('User’, bogeSchema) //绑定约束至User集合(自动变为users集合)(数据库类似数组,集合类似对象或叫文档)
2.2 mongoose的增、删、改、查(基于基本机构即以上代码之后):
2.2.1 增加数据:
var admin = new User({ username: 'zs', password: '123456', email: 'admin@admin.com' }) //new增加数据 admin.save(function (err, ret) { if (err) { console.log('保存失败') } else { console.log('保存成功') console.log(ret) } }) //save持久化数据
2.2.2 查询数据:
//查询users集合里的所有数据 User.find(function (err, ret) { if (err) { console.log('查询失败') } else { console.log(ret) } }) //按条件查询users集合里的所有数据,所以哪怕它只有一条数据也会放到一个数组里面 User.find({ username: 'zs' }, function (err, ret) { if (err) { console.log('查询失败') } else { console.log(ret) } }) //按条件查询users集合里的数据,且只找匹配的第一个,所以它得到的就是一个对象(如果没有条件找到的就是第一个插入的数据) User.findOne({ username: 'zs',
password: '123456'
}, function (err, ret) { if (err) { console.log('查询失败') } else { console.log(ret) } })
2.2.3 删除数据:
//有多少个满足条件的都删除
User.remove({ username: 'zs' }, function (err, ret) { if (err) { console.log('删除失败') } else { console.log('删除成功') console.log(ret) } })
2.2.4 更新修改数据:
User.findByIdAndUpdate('5a001b23d219eb00c8581184', { password: '123' }, function (err, ret) { if (err) { console.log('更新失败') } else { console.log('更新成功') } })
本文来自博客园,作者:封兴旺,转载请注明原文链接:https://www.cnblogs.com/fxw1/p/14110185.html