nodejs连接mongodb

首先我们先去 mongodb官网 注册一个账号,然后申请一个免费的服务器,直接用qq邮箱注册即可。

1.填写相对应的注册信息,然后去qq邮箱确认下。

2.选择服务器,这边我们选择 FREE 就可以了,毕竟自己学习的话(521M)已经够用了。然后我们点击 Create,进行下步操作。

nodejs连接mongodb

3. 选择服务器,建议选择香港、*的服务器。点击Create Cluster,创建服务器。

nodejs连接mongodb

4. 接下来会跳转到这个页面,记得左边选择Databases ,这样就可以看到我们创建的服务器了(这里中间文字提示服务器会在1-3分钟创建完成)。

 如果想创建新的服务器可以点击右边的Create,但是新的服务器就需要花钱了。

nodejs连接mongodb 

 等待几分钟后就可以看到我们自己创建的服务器了。然后我们点击Connect,会出现选择连接的弹框。

nodejs连接mongodb

5. 点击Connect your appliction 就可以看到用nodejs 连接服务器的例子。

  点击 connect using MongoDB Compass , 可以看到使用 MongoDB Compass连接服务器的密钥,密码是自己账号的密码,记得把 '<password>' 替换成自己的密码。

nodejs连接mongodb

nodejs连接mongodb

nodejs连接mongodb

  6. 没有 MongoDB Compass ,先去下载 MongoDB Compass。可以在上一张图中选择 I do not have MongoDB Compass ,那么就会提供下载链接,根据自己的系统选择对应的安装包。

  然后打开 MongoDB Compass 在下方输入密钥,点击Connect 即可接连到我们的服务器,并且可以对服务器中的数据库进行操作。

nodejs连接mongodb

 

我们开始使用nodejs连接到数据库,并进行一些简单的操作。这里使用的是 mongoose 进行数据库操作。

1.连接数据库,在node环境下运行,控制台输出 connect success 就表示数据库连接成功了。需要注意的是,如果我们的数据

const mongoose = require('mongoose');

// 数据库名称
const dbName = 'nodeStudy'
// 连接服务器的链接  把链接换成自己的服务器链接就可以了。
const uri = `mongodb+srv://lvkeming:<password>@cluster0.qkwmi.mongodb.net/${dbName}?retryWrites=true&w=majority`;
mongoose.connect(uri, (err) => {
	if (err) {
		console.log(err);
		return
	}
	console.log('connect success');
});

2.一些简单的增删改查

const mongoose = require('mongoose');

const dbName = 'nodeStudy'
const uri = `mongodb+srv://lvkeming:<password>@cluster0.qkwmi.mongodb.net/${dbName}?retryWrites=true&w=majority`;
mongoose.connect(uri, (err) => {
	if (err) {
		console.log(err);
		return
	}
	console.log('connect success');
});


/**
 *  数据校验
 * 	required 表示这个数据必须传入
 * 	max 最大值
 * 	min 最小值
 * 	enum 枚举类型,要求数据必须满足枚举值
 * 	match 增加的数据必须符合 match(正则)的规则
 * 	maxlength 最大长度
 * 	minlength 最小长度
 *  validate 自定义校验,返回bool类型
 */

// 这边定义了 nodeStudy 里面user表里面的字段类型,以及一些数据校验
const UserSchema = new mongoose.Schema({
	username: {
		type: String,
		unique: true
	},
	password: String,
	name: String,
	age: Number,
	sex: String,
	tel: Number,
	status: {
		// 如果不传status 那么status默认值为1
		type: Number,
		default: 1
	}
});

// 这边第三个参数 才是和具体的表对应,这里连接到了 user 这个表 const UserModel = mongoose.model('User', UserSchema, 'user'); // 查询数据,第一个参数是查询的条件 // 第二个参数是一个回调函数,返回 err错误信息 和 data查询的结果 // 该语句查询 username 为 lisi 的用户 UserModel.find( { "username": "lisi" }, (err, data) => { if (err) throw err console.log(data); } ) // 增加数据 let addUser = UserModel({ username: 'lisi11', password: '12345678', name: '李四', age: 34, sex: '男', tel: 10086344567 }) addUser.save((err, res) => { if (err) throw err console.log(res); }) // 删除数据 第一个参数是查询的条件 // 第二个参数是一个回调函数,返回 err错误信息 和 res删除结果 UserModel.deleteOne( { 'username': 'lisi11' }, (err, res) => { if (err) throw err console.log(res); } ) // 更新数据 第一个参数是查询的条件 。 // 第二个参数是更新的数据,更新数据是合并更新。 // 第三个参数是一个回调函数,返回 err错误信息 和 res未更新的数据 UserModel.updateOne( { 'username': 'lisi11' }, { 'age': 45 }, (err, res) => { if (err) throw err console.log(res); } )

  

 

上一篇:epress (NodeJS的服务器框架)


下一篇:[nodejs]fs 读数据流和写数据流