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之安全认证
Jun 26 MongoDB
mongodb的安装和开机自启动详细讲解
Aug 02 MongoDB
mongodb数据库迁移变更的解决方案
Sep 04 MongoDB
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
Nov 01 MongoDB
SpringBoot系列之MongoDB Aggregations用法详解
Feb 12 MongoDB
MongoDB使用场景总结
Feb 24 MongoDB
剖析后OpLog订阅MongoDB的数据变更就没那么难了
Feb 24 MongoDB
MongoDB数据库部署环境准备及使用介绍
Mar 21 MongoDB
mongoDB数据库索引快速入门指南
Mar 23 MongoDB
MongoDB修改oplog大小的四种方法
Apr 11 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python算法学习之计数排序实例
2013/12/18 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python3 flask实现文件上传功能
2020/03/20 Python
python 实现倒排索引的方法
2018/12/25 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
Django REST framwork的权限验证实例
2020/04/02 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
化工机械应届生求职信
2013/11/04 职场文书
爱心捐款倡议书
2014/04/14 职场文书
协议书样本
2014/04/23 职场文书
捐书活动总结
2014/05/04 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
十八大标语口号
2014/10/09 职场文书
2014年转正工作总结
2014/11/08 职场文书
小学教代会开幕词
2016/03/04 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server