在Node.js中使用mongoDB操作数据库

mongoDB

这是我在学习mongodb时的学习笔记,希望对大家有帮助:

  1. 安装:
    www.runoob.com/mongode下载安装

  2. 存储目录:

    mongoDB默认在所属根目录下的/data/db/作为数据存储目录路径,所以可以手动创建data目录

  3. 安装完后,用后台管理器检查安装版本

输入mongod --version,如果有版本信息,说明安装成功

使用

  • 进入mongoDB:mongo
  • 退出:exit

基本命令

  • show dbs
    • 查看显示所有数据
  • db
    • 查看当前操作的数据库
  • use数据库名称
    • 切换到指定的数据库
  • 插入数据

在Node中使用mongoDB

使用官方的mongodb包来操作

在npm官网中搜索mongodb

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

第三方包:mongoose:https://mongoosejs.com/

mongoose

1. 起步

安装:npm i mongoose

hello world:

var mongoose = require('mongoose');//链接数据库
mongoose.connect('mongodb://localhost:27017/test', {useNewUrlParser: true, useUnifiedTopology: true});
``//创建模型,设计数据库

var Cat = mongoose.model('Cat', { name: String });
//实例化一个cat
var kitty = new Cat({ name: 'Zildjian' });持久化保存kitty数据实例
kitty.save().then(() => console.log('meow'));

mongoDB数据库的基本概念

  • 数据库

  • 集合

  • 文档

      {
      qq:{
      users:[
      {name: 'zhan',age: 13},
      {name: 'zhan1',age: 13},
      {name: 'zhan2',age: 13}
      ],
      products:[
      ],
      ...
      },
      taobao:{
    
      },
      baidu:{
    
      }
    

    }`

设计模型

设计Schema架构
 var mongoose = require('mongoose')
var Schema = mongoose.Schema

//1.链接数据库
//指定数据库不需要存在,当插入第一条数据时会自动创建
mongoose.connect('mongodb://localhost/itcast')

//2.设计集合(表)结构
//
// var blogSchema = new Schema({
// 	title: String,
// 	author: String,
// 	body: String,
// 	comments: [{body: String,date: Date}],
// 	date: {type: Date, Default: Date.now},
// 	hidden: Boolean,
// 	meta:{
// 		votes: Number,
// 		favs: Number
// 	}
// });
var userSchema = new Schema({
	username: {
		type: String,
		required: true //必须有,不能为空
	},
	password: {
		type: String,
		required: true
	},
	email: {
		type: String
	}
});

//3.将文档结构发布为模型
//	mongoose.model方法用来将一个架构发布为model
//	第一个参数:大写名词单数字符串表示数据库名称
//				mongoose会自动将大写生成小写复数的集合名称
//				User-->users
//	第二个:架构Schema
//	返回值:模型构造函数
var User = mongoose.model('User',userSchema)
增加数据
 `//	1.增加数据
var admin = new User({
	username: 'admin',
	password: '123456',
	email: 'admin@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: 'admin'
},function(err,ret){
	if(err){
		console.log('查询失败')
	}else{
		console.log(ret)
	}
})

只查询一个:findOne

  • 当没有条件时,默认返回第一个数据内容
删除数据
User.remove({
	username: '张飒'
},function(err,ret){
	if(err){
		console.log('删除失败')
	}else{
		console.log('删除成功')
		console.log(ret)
	}
});

根据条件删除一个:

User.findOneAndRemove(conditions,[options],[callback])

根据id删除一个:

User.findByIdAndRemove(id,[options],[callback])
更新数据
// 更新数据
// **************************************
User.findByIdAndUpdate('5f01451bb470b943604e9763',{
	password: '123'
},function(err,ret){
	if(err){
		console.log('更新失败')
	}else{
		console.log('更新成功')
		console.log(ret)
}
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值