MongoDB数据库操作与mongoose的使用

MongoDB数据库操作

# 打开数据库
mongod

# 连接数据库
mongo

# 退出连接
exit

1. 基本命令

# 查看显示所有数据库
show dbs

# 查看当前操作的数据库
db

# 切换/创建 数据库
use 数据库名称
use itcast

# ------------------------------------------------

# 创建集合,添加数据
 db.students.insertOne({"name":"Jack"})
 
# 查看集合
 show collections

# 查看数据
 db.students.find()

2.第三方包

2.1 mongo 官方推荐,原生的

https://github.com/mongodb/node-mongodb-native

2.2 mongoose 基于MongoDB封装,使用这个

https://mongoosejs.com/

3. 数据库的基本概念

  • 数据库
  • 集合
  • 文档
# mongodb
{
	# 数据库
	qq: {
	  # 集合
	  users: [
	    # 文档
	    {},
	    {},
	    {},
	    ...
	  ],
	  products: [
	  
	  ]
	  ...
	},
	taobao: {
	
	},
	baidu: {
	
	}
	...
}

4. mongoose基本使用

/**
 * mongoose 基本使用
 */

//  1.引入
var mongoose = require('mongoose')

// 2. 连接数据库,会自动创建
mongoose.connect('mongodb://localhost/test')

// 3. 设计文档(集合)结构
var userSchema = new mongoose.Schema({
  username: {
    type: String,
    required: true // 集合中必须有username这个属性
  },
  password: {
    type: String,
    required: true // 集合中必须有 password 这个属性
  },
  email: {
    type: String
  }
})

/**
 * 4. 将文档结构发布为模型
  mongoose.model 方法就是将一个架构发布为 model
    'User' —— 数据库中集合名称,会转换为 users(变小写,加s)
    userSchema —— 架构 Schema
    返回值:模型构造函数
 */
var User = mongoose.model('User', userSchema);

5. 使用mongoose进行增删改查

  • 新增数据
/**
 * 5. 使用 User 这个模型构造函数操作数据(增删改查)
 */

// ****************************
// ----- /新增数据
// ****************************

var admin = new User({
  username: 'admin',
  password: '123456',
  email: 'admin@admin.com'
})

// 数据持久化,保存到数据库
admin.save(function(err,result){
  if(err){
    console.log('保存失败')
  }else{
    console.log('保存成功')
    console.log(result)
  }
})
  • 查询
// ****************************
// ----- /查询所有数据
// ****************************

User.find(function (err, result) {
  if (err) {
    console.log('查询所有数据失败')
  } else {
    console.log('查询所有数据成功')
    console.log(result)
  }
})
// ****************************
// ----- /按条件查询数据
// ****************************

// 返回满足条件的所有数据(该数据为数组,即使只有一个)
User.find({
  username: '张三'
}, function (err, result) {
  if (err) {
    console.log('条件查询失败')
  } else {
    console.log('条件查询成功')
    console.log(result)
  }
})
// ****************************
// ----- /按条件查询数据
// ****************************

// 返回第一个满足条件的数据(该数据为对象)
User.findOne({
  username: '张三'
}, function (err, result) {
  if (err) {
    console.log('条件查询失败')
  } else {
    console.log('条件查询成功')
    console.log(result)
  }
})

  • 更新数据
// ****************************
// ----- /更新数据
// ****************************

User.findByIdAndUpdate('5fcca48078ee3421d09c72b8', {
  password: '123'
}, (err, data) => {
  if(err) {
    console.log('更新失败')
  }else{
    console.log('更新成功')
    console.log(data)
  }
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值