MongoDB连接数据库并创建数据等使用方法


Posted in MongoDB onNovember 27, 2021

1.mongodb官网

MongoDB: the application data platform | MongoDB

2.进入MongoDB官网下载MongoDB以及MongoDB compass 和Mongodb--database--tools

3.nodejs操作MongoDB数据库需要依赖nodejs的第三方包mongoose 

终端指令: npm install mongoose

4.

MongoDB连接数据库并创建数据等使用方法

 5.

以管理员身份运行PowerShell cd到文件所在目录 如果没有开启MongoDB的话 

使用net start mongodb 指令启动

MongoDB连接数据库并创建数据等使用方法

MongoDB连接数据库并创建数据等使用方法

 6.

//引入mongoose模块
const mongoose = require('mongoose');
// console.log(mongoose);
 
//todo 连接数据库
mongoose.connect('mongodb://localhost/test001')
    .then(() => console.log('数据库链接成功'))
    .catch(erro => console.log('连接失败'))

7.在vscode的集成终端中cd到文件所在目录,使用nodemon 'node 02.js'指令打开文件

MongoDB连接数据库并创建数据等使用方法

 8. 设定集合规则 创建集合并应用规则

//todo 设定集合规则
const courseSchema = new mongoose.Schema({
    name: String,
    author: String,
    isPublished: Boolean
});
// todo 创建集合并应用规则
// todo 1.集合名称'' 2.集合规则
const Course = mongoose.model('Course', courseSchema);

  9. 创建集合实例document的两种方式

// todo 第一种方式   创建集合实例 文档document
const course = new Course({
    name:'xiaoguo',
    author:'aaa',
    tags:['node','backend'],
    isPublished:false
})
// 将数据保存在数据库中
course.save();
 
 
 
//todo 第二种方式 创建文档 不需要使用course.save()方式保存,会自动保存进数据库
Course.create({
    name:'xiaowei',
    author:'sh',
    isPublished:true
},(erro,data)=>{
    console.log(erro);
    console.log(data)
});
//也支持promise对象
Course.create({
    name:'xiaoli',
    author:'zz',
    isPublished:true
}).then(data=> console.log(data))
.catch(erro=>console.log(erro))

 10. 查询用户集合中的所有文档,返回的是一个数组

// todo 查询用户集合中的所有文档 返回的是一个数组
Course.find()
.then(result =>{console.log(result)})

 11. 通过ID字段查询用户集合中的某个文档,返回数组

// todo 通过ID字段查询用户集合中的某个文档 返回数组
Course.find({
_id:"619b0f75dc5e07d1b9924ee9"
})
.then(result =>{console.log(result)})

 12. 根据条件查找文档 如果不写条件返回数据库中的第一条文档 返回一个对象

// todo 根据条件查找文档 如果不写条件返回数据库中的第一条文档 返回一个对象
Course.findOne({
    name:'xiaowei'
})
.then(result=>console.log(result))

13. 根据范围条件查找文档 $gt 最小值 $lt最大值

// todo 根据范围条件查找文档
Course.find({
    age: { $gt: 20, $lt: 50 }
})
.then(result => console.log(result))

 14. 查询包含

// todo 根据范围条件查找文档
Course.find({
    name: { $in: ['xiao'] }
})
.then(result => console.log(result))

 15. 选择要查询的字段并排序 默认升序 降序加个-

// todo 选择要查询的字段 (升序)
Course.find().select('name age')
//相反的顺序用.sort('-age') (降序)
.then(result => console.log(result))

  16.  skip跳过前两条数据 limit限制查询数量

// todo skip跳过前两条数据 limit限制查询数量
Course.find().skip(2).limit(2)
.then(result => console.log(result))

   17.  查找一个文档并删除文档 返回值是删除的文档 如果匹配到多个文档 只删除第一个

// todo 查找一个文档并删除文档 返回值是删除的文档 如果匹配到多个文档 只删除第一个
Course.findOneAndDelete({
   _id:"619b0f75dc5e07d1b9924ee9"
})
.then(result=>console.log(result))

 18.  删除多个文档  返回一个对象 {n:删除的文档数量 ok:1(删除成功)}

// todo 删除多个文档  返回一个对象 {n:删除的文档数量 ok:1(删除成功)}
Course.deleteMany({
   _id:"619b0f75dc5e07d1b9924ee9"
})
.then(result=>console.log(result))

  19.  更新单个文档 里面传两个对象 ,隔开 第一个对象是查询条件 第二个要改的值

// todo 更新单个文档 里面传两个对象 ,隔开 第一个对象是查询条件 第二个要改的值
Course.updateOne(
{name:'xiaoguo'},
{name:'xiaoguoguo'}
)
.then(result=>console.log(result))

   20.  更新多个文档 里面传两个对象 ,隔开 第一个对象是查询条件 第二个要改的值

// todo 更新多个文档 里面传两个对象 ,隔开 第一个对象是查询条件 第二个要改的值
Course.updateMany(
{},
{age:18}
)
.then(result=>console.log(result))

    21. 设置mongoose验证

 针对String类型字段      required: [true,'错误说明']   必传字段  

MongoDB连接数据库并创建数据等使用方法

  针对String类型字段      minlength: [n,'错误说明']       最小字段长度

 针对String类型字段       maxlength: [n,'错误说明']      最大字段长度

MongoDB连接数据库并创建数据等使用方法

  针对String类型字段      trim:true       //去除字符串两头的空格

  针对Number类型字段      min: [n,'错误说明']       最小数值

 针对Number类型字段       max: [n,'错误说明']      最大数值

 设置时间默认值 当用户未传此字段的数据时 启用当前时间为默认值 

MongoDB连接数据库并创建数据等使用方法

 列举出当前字段可以取的值,必须在范围内上传

MongoDB连接数据库并创建数据等使用方法

 自定义错误信息时的格式

MongoDB连接数据库并创建数据等使用方法

制定规则验证用户传入的值的属性是否符合规范 自定义错误信息 message 

MongoDB连接数据库并创建数据等使用方法

 控制台获取错误信息

 MongoDB连接数据库并创建数据等使用方法

到此这篇关于MongoDB连接数据库并创建数据等使用方法的文章就介绍到这了,更多相关MongoDB连接数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MongoDB 相关文章推荐
MongoDB orm框架的注意事项及简单使用
Jun 20 MongoDB
常用的MongoDB查询语句的示例代码
Jul 25 MongoDB
mongodb清除连接和日志的正确方法分享
Sep 15 MongoDB
MongoDB日志切割的三种方式总结
Sep 15 MongoDB
centos8安装MongoDB的详细过程
Oct 24 MongoDB
剖析后OpLog订阅MongoDB的数据变更就没那么难了
Feb 24 MongoDB
SpringBoot 整合mongoDB并自定义连接池的示例代码
Feb 28 MongoDB
mongoDB数据库索引快速入门指南
Mar 23 MongoDB
MongoDB误操作后使用oplog恢复数据
Apr 11 MongoDB
Centos系统通过Docker安装并搭建MongoDB数据库
Apr 12 MongoDB
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
Nov 01 #MongoDB
centos8安装MongoDB的详细过程
关于CentOS 8 搭建MongoDB4.4分片集群的问题
MongoDB日志切割的三种方式总结
Sep 15 #MongoDB
mongodb清除连接和日志的正确方法分享
Sep 15 #MongoDB
阿里云服务器部署mongodb的详细过程
Sep 04 #MongoDB
mongodb数据库迁移变更的解决方案
Sep 04 #MongoDB
You might like
很好用的PHP数据库类
2009/05/27 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
python中的tcp示例详解
2018/12/09 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
2014年学雷锋活动总结
2014/06/26 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
2014教师年度工作总结
2014/11/10 职场文书
大学校园招聘会感想
2015/08/10 职场文书