首先我们先去 mongodb官网 注册一个账号,然后申请一个免费的服务器,直接用qq邮箱注册即可。
1.填写相对应的注册信息,然后去qq邮箱确认下。
2.选择服务器,这边我们选择 FREE 就可以了,毕竟自己学习的话(521M)已经够用了。然后我们点击 Create,进行下步操作。
3. 选择服务器,建议选择香港、*的服务器。点击Create Cluster,创建服务器。
4. 接下来会跳转到这个页面,记得左边选择Databases ,这样就可以看到我们创建的服务器了(这里中间文字提示服务器会在1-3分钟创建完成)。
如果想创建新的服务器可以点击右边的Create,但是新的服务器就需要花钱了。
等待几分钟后就可以看到我们自己创建的服务器了。然后我们点击Connect,会出现选择连接的弹框。
5. 点击Connect your appliction 就可以看到用nodejs 连接服务器的例子。
点击 connect using MongoDB Compass , 可以看到使用 MongoDB Compass连接服务器的密钥,密码是自己账号的密码,记得把 '<password>' 替换成自己的密码。
6. 没有 MongoDB Compass ,先去下载 MongoDB Compass。可以在上一张图中选择 I do not have MongoDB Compass ,那么就会提供下载链接,根据自己的系统选择对应的安装包。
然后打开 MongoDB Compass 在下方输入密钥,点击Connect 即可接连到我们的服务器,并且可以对服务器中的数据库进行操作。
我们开始使用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); } )