mongodb-01

文章介绍了如何安装MongoDB,配置并测试数据库服务,以及使用Mongoose库在Node.js中连接数据库。详细讲解了Mongoose的图式定义,包括字段类型、验证规则,并给出了创建模型和插入数据的实例。
摘要由CSDN通过智能技术生成

连接

1.安装

  1. https://www.mongodb.com/try/download/community mongodb数据库
  2. mongodb可视化工具 https://www.mongodb.com/try/download/compass
  3. cmd中输入 mongodb -version 查看mongodb版本
    - 没有出现对应版本,说明没有配置环境变量

2.配置并测试

  1. 在mongodb文件夹的bin目录下,cmd进入输入mongod -dbpath …/data/db(如果没有db文件夹则手动创建)开启数据库服务
  2. 浏览器打开http://localhost:27017查看是否启动成功

3.连接数据库

通过mongoose操作mongodb数据库

  1. npm i mongoose
  2. node项目连接mongodb数据库
    - mongoose.connect(“数据库地址”) 连接数据库
    - 数据库地址 => mongodb://localhost:27017/集合名称(数据集合名称)
    - 默认端口是 27017
    - 不存在对应集合 则会创建
  3. 判断连接成功
    - 通过mongoose.connect返回进行 .then处理 处理是否连接成功
const mongoose = require("mongoose")

mongoose.connect("mongodb://127.0.0.1/test")
	.then(() => {
		console.log("数据库连接成功")
	}).catch(() => {
		console.log("连接失败")
	})

需要注意的地方:
IPV6下会把localhost解析为::1(cmd中输入ping命令可以查看ping localhost)

mongoose

图式

所谓图式(schema),就是通过规定实体属性及其对应数据类型,创建出数据库模型的基本骨架。图式本身并不具备操作数据库的能力,仅仅是定义被操作集合字段的步骤

对字段做进一步规定,常用的选项有required(是否强制用户输入)、unique(是否不允许重复)、default(用户不输入时的默认值是什么)和trim(要不要去掉两头的空格)

模型

所谓模型(model),它是连接图式与MongoDB集合的纽带,负责实际对数据库进行读写操作

定义表规则

  1. new mongoose.Schema({ 参数对象 }) => 返回放入创建表中
    -返回值放入对应表名称
  2. 对象
    属性名=>表头 属性值=>数据的类型
  3. 数据的类型
    String、Number、Boolean、Array、Object(文档中不存在,但是可以使用)、Date、Buffer

表规则对象写法

通用类型
{
	type:数据类型,
	default:默认值,
	required:布尔值,是否是必选项
	validate:{  自定义验证
		validator(val){  接受验证数据
			console.log(val);
			返回false将执行message
		},
		message:"错"
	}
}
字符串
lowercase:true 字母转出小写存储
uppercase:true 字母转出大写存储

trim:true 清除两侧空格
minlength:number 字符串长度最小
maxlength:number 字符串长度最大

enum:[组合选择其中一项] 写入的数据必须是其中一项 
数字
min:number 最小值
max:number 最大值

数字转化字符串 字符串可以转出数字

_id: 唯一值,十六进制,不会重复
_v: 版本号

实例

const mongoose = require("mongoose")

mongoose.connect("mongodb://127.0.0.1:27017/luyao")
.then(()=>{
	console.log("数据库连接成功")
}).catch(()=>{
	console.log("数据库连接失败")
})

// mongoose.Schema定义表规则(图式)
let sch = new mongoose.Schema(
	{
		//属性名:属性值的类型
		name:{
			type: String, 
			default: "jiuwei"
		},
		ca: {
			type: String,
			lowercase: true,
			minlength: 2,
			maxlength: 5
		},
		sex: {
			type: String,
			enum: ["男","女","未知"]
		},
		age: Number,
		arr: Array,
		obj: {
			type: Object,
			validate: {
				validator(val) {
					return val.name === "luyao"
				},
				message: "错了"
			}
		}
	},
	{
		versionKey: false //去除版本号
	}
)

// model(创建表,表规则)——模型
let mongo = mongoose.model("girlfriend",sch)

// 添加数据
async function add() {
	let result = await mongo.create({
		name: "luyao",
		ca: "YAYA",
		sex: "男",
		age: 18,
		arr: [1,2,3,4],
		obj: {
			name: "luyao"
		}
	})
	console.log(result)
}
add()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为什么会这样[user_mongo@nosql01 replicaset]$ cd /opt [user_mongo@nosql01 opt]$ ll total 0 drwxr-xr-x. 3 root root 25 Mar 16 17:08 servers drwxr-xr-x. 2 root root 51 Mar 16 17:10 software [user_mongo@nosql01 opt]$ tar -zxvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/MPL-2 tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/MPL-2: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/README tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/README: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos: Cannot open: No such file or directory tar: Exiting with failure status due to previous errors [user_mongo@nosql01 opt]$ tar -zcvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ tar: Cowardly refusing to create an empty archive Try `tar --help' or `tar --usage' for more information.
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雷旭4466

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

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

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

打赏作者

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

抵扣说明:

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

余额充值