mongoDB数据库学习

安装好后需要设置bin目录的环境变量

mongoDB默认使用执行mongod命令所属盘符根目录下的 /data/db作为自己的数据存储目录,如C:/data/db

所以在第一次执行mongod命令前先手动创建  /data/db

开启数据库,命令行 

mongod

连接数据库

mongo

退出数据库

exit

基本命令

show dbs        // 查看显示所有数据库
db              // 查看当前操作的数据库
use 数据库名称   // 切换到指定的数据库,没有的话就会新建

db.students.insertOne({"name":"jack"})  // 当前数据库插入数据
show collections                        // 显示当前数据库的所有集合
db.students.find()                      // 查询当前数据库下students集合中的所有数据

在node中操作mongoDB数据库

mongoDB数据库基本概念

a,b,c就是数据库,user就是集合,集合里面是文档,文档必须是对象

{
  'a':{
    user:[{}, {}]
  },
  'b':{
    user:[{}, {}]
  },
  'c':{
    user:[{}, {}]
  }
}

使用第三方mongoose来操作mongoDB数据库

官网 http://mongoosejs.com/

const mongoose = require('mongoose')

// 连接mongoDB数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true})

// 创建一个Cat模型
const Cat = mongoose.model('Cat', {name: String})

// 实例化一个Cat
const kitty = new Cat({name: 'Zildjian'})

// 持久化保存kitty实例
kitty.save().then(() => console.log('meow'))

增删改查

const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost:27017/itcast', {useNewUrlParser: true})

const Schema = mongoose.Schema

// 设计文档结构
const userSchema = new Schema({
  username: {
    type: String,
    required: true  // 必须有
  },
  password: {
    type: String,
    required: true
  },
  email: {
    type: String
  }
})

// 将文档结构发布为模型
// mongoose.model方法用来将一个架构发不为model
// 第一个参数为大写名词单数字符串来表示这个集合名称
// mongoose会自动将大写名词单数字符串转换为小写复数的集合名称  User => users
// 返回的是模型构造函数
const User = mongoose.model('User', userSchema)

添加数据 

// 添加数据
const admin = new User({
  username: 'zs',
  password: '1234',
  email: '9999@qq.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('查询失败')
  }
  else {
    console.log(ret)
  }
})

// 按条件查询数据
User.find({username: 'zs'}, function (err, ret) {
  if (err) {
    console.log('查询失败')
  }
  else {
    console.log(ret)
  }
})

// 查找匹配的第一个数据
User.findOne({username: 'zs'}, function (err, ret) {
  if (err) {
    console.log('查询失败')
  }
  else {
    console.log(ret)
  }
})

 删除所有匹配条件的数据,mongoose已更新,建议使用deleteOne和deleteMany

//删除所有匹配条件的数据
User.remove({username: 'zs'}, function (err, ret) {
  if (err) {
    console.log('删除失败')
  }
  else {
    console.log('删除成功')
    console.log(ret)
  }
})

更新数据,第一个参数为id,第二参数对象为要改的数据

//更新数据
User.findByIdAndUpdate('5d0f950a7aaf88066cea5f9e', {
  password: 1111
}, function (err, ret) {
  if (err) {
    console.log('更新失败')
  }
  else {
    console.log('更新成功')
  }
})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风里有诗句哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值