数据库相关概念

在一个数据库软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个数据集合中可以包含多条文档(具体的数据)

术语:

database 数据库,mongoDB 数据库阮家中可以建立多个数据库

collection  集合,一组数据的集合,可以理解为JavaScript中的数组

document 文档,一条具体的数据,可以理解为JavaScript中的对象

filed 字段,文档中的属性名称,可以理解为javascript 中的对象属性

操作数据库

使用node.js 操作数据库需要依赖Node.js 的第三方包 mongoose

运行安装命令

npm i mongoose

连接数据库

1 const mongoose = require('mongoose')
2
3 mongoose.connect('mongodb://localhost/test1', { useNewUrlParser: true })
4 .then(() => console.log('数据库连接成功'))
5 .catch( err => console.log('数据连接失败' + err))

创建数据库

在MongoDB 中不需要显式创建数据库,如果正在使用的数据不存在,MongoDB 会自动创建。

增删改查操作

创建集合:

创建集合分为两步,一是对集合设定规则,二是创建集合,创建mongoose.Schema 构造函数的实例即可创建集合。

(创建集合后,这时数据库并不会显示这个集合,只有当插入数据后,才会真正创建。)

1 // 设定集合规则
2 const courseSchema = new mongoose.Schema({
3   name: String,
4   author: String,
5   isPublished: Boolean
6 })
7 // 创建集合并应用规则
8 const Course = mongoose.model('Course', courseSchema)

创建文档:

创建文档实际上就是向集合中插入数据。

分为两步:1)创建集合实例。2)调用实例对象下的save方法将数据保存到数据库当中。

1 // 插入数据
2 const course = new Course ({
3   name: 'node',
4   author: 'zhangsan',
5   isPublished: true
6 })
7 course.save()

向数据库导入数据

命令: mongoimport -d 数据库名称 -c 集合名称 --flile 要导入的数据文件

在导入数据之前,需要确保mongodb 已经设置了环境变量,如果没有设置,需要把mongodb/bin 目录添加到系统环境中。在设置好环境变量之后重启,就可以使用命令行执行操作了。

示例:

mongoimport -d test1 -c uesr1 --file  ./user.json

查询文档

查找所有数据

xxx.find() 方法: 返回一组符合条件的数据

xxx.find({查找条件}).then( res => console.log( res )

// 查询集合中所有文档
// Course.find().then(res => console.log('查询结果' + res))// 根据 _id  查找文档
Course.find({ _id: '5d343c27d201764240160daf' }).then(res => console.log('查询结果' +res))

查询一个数据

xxx.findOne() 方法: 返回一个文档

//  xxx.findOne() 方法 返回一条文档,默认返回的是第一条文档,()中可以添加查找条件
Course.findOne().then( res => console.log(res))Course.findOne({name: 'node'}).then( res => console.log( res ))

条件匹配查询

xxx.find()

// 匹配数值范围 $gt 大于的意思, $lt 小于的意思, 查询 User 文档中 age 字段 大于 20 小于 50 的数据
User.find({ age: { $gt: 20, $lt: 50 } }).then(res => console.log(res))// 匹配包含  $in 是 匹配包含的意思
User.find( {hobbies: { $in: ['足球'] }}).then(res => console.log(res))// 选择要查询的字段  (只查询 name 和 email 字段 并排除 _id 字段 ) -字段名 可以排除查询到的字段
User.find().select( 'name email -_id').then( res => console.log(res))// 将数据按照 age 字段 进行升序排列
User.find().sort('age').then( res => console.log(res) )// 将数据按照 age 字段 进行降序排列 字段前面加 - 表示降序排列
User.find().sort('-age').then( res => console.log(res) )//  skip 跳过多少条数据 limit 限制查询数量
User.find().skip(2).limit(5).then( res => console.log(res))

删除文档

const mongoose = require('mongoose')mongoose.connect('mongodb://localhost/test1', { useNewUrlParser: true })
.then(() => console.log('数据库连接成功'))
.catch( err => console.log('数据连接失败' + err))// 设定集合规则
const courseSchema = new mongoose.Schema({name: String,author: String,isPublished: Boolean
})
// 创建集合并应用规则
const Course = mongoose.model('Course', courseSchema)// 删除一个
Course.findOneAndDelete({_id: '5d343ab3981298416bd26998'}).then( res => console.log(res))// 删除多条文档  不添加条件默认删除所有文档,返回值 ok 等于 表示删除成功, n 代表删除数据的条数
Course.deleteMany({}).then(res => console.log(res))

修改文档

const mongoose = require('mongoose')mongoose.connect('mongodb://localhost/test1', { useNewUrlParser: true })
.then(() => console.log('数据库连接成功'))
.catch( err => console.log('数据连接失败' + err))// 设定集合规则
const courseSchema = new mongoose.Schema({name: String,author: String,isPublished: Boolean
})
// 创建集合并应用规则
const Course = mongoose.model('Course', courseSchema)// 修改单个
// xxx.updateOne({查询条件}, {要修改的值}).then(res => console.log(res))
// 修改文档的一个字段, updataOne() 里面需要传两个参数,第一是要修改的字段,第二个修改成的内容
Course.updateOne({author: 'lisi'},  {author: 'wangwu'}).then(res => console.log(res))// 修改多个 查询条件不写,则修改所有
// xxx.updateMany({查询条件}, {要修改的值}).then( res => console.log(res))
Course.updateMany({}, {name: 'javascript'}).then( res => console.log(res))

转载于:https://www.cnblogs.com/liea/p/11221346.html

MongoDB的基本用法相关推荐

  1. mongoDB 特别指令用法

    http://apluck.iteye.com/blog/1176160 a.   修改collection集合字段名 参见:http://www.mongodb.org/display/DOCS/U ...

  2. mongodb的aggregate 用法

    先用一个python脚本构造一些数据,然后来演示如何使用 #coding=utf-8 ''' Created on 2015-12-28@author: kwsy ''' import pymongo ...

  3. mongodb php代码实例,php操作mongoDB实例分析

    本文实例讲述了PHP操作mongoDB的方法.分享给大家供大家参考.具体分析如下: mongoDB数据库是一种以json格式存储的数据库,非常适用于各种应用开发,这里就来给各位朋友介绍一些mongoD ...

  4. mongoDB配制及学习

    mongoDB配制及学习 http://blog.csdn.net/zj7758/article/details/7102996 ----------------------------------- ...

  5. 野心勃勃的NoSQL新贵 MongoDB应用实战(5)

    2019独角兽企业重金招聘Python工程师标准>>> 三.MongoDB客户端访问 – Shell方式 MongoDB是MongoDB自带的交互式Javascript shell, ...

  6. linux下打开Mongodb命令行窗口,Linux系统下MongoDB的安装与基本操作

    Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo ...

  7. mongoDB快速教程

    转载自:http://blog.csdn.net/zj7758/article/details/7102996 第一部分 基础篇 第一章 走进MongoDB MongoDB 是一个高性能,开源,无模式 ...

  8. mongodb gridfs java_mongodb Gridfs操作

    GridFS 介绍 GridFS是MongoDB规范用于存储和检索大文件,如图片,音频文件,视频文件等.这是一种文件系统用来存储文件,但数据存储于MongoDB集合中.GridFS存储文件比其文档大小 ...

  9. mongodb gridfs java_MongoDB基于GridFS管理文件

    前言 GridFS是一种将大型文件存储在MongoDB的文件规范: 数据库支持以BSON格式保存二进制对象. 但是MongoDB中BSON对象最大不能超过4MB. GridFS 规范提供了一种透明的机 ...

最新文章

  1. 这是预编译工具生成的文件_组件化架构 10.编译优化
  2. linux下面显示所有正在运行的线程
  3. 看美女有助于男士长寿
  4. Java+Selenium+sikuli script入门使用
  5. 牛顿插值--python实现
  6. 收藏 | 深度学习pytorch训练代码
  7. 【React深入】深入分析虚拟DOM的渲染原理和特性
  8. php7异常抛出的好处,PHP7的错误与异常
  9. 怎么用wps做区域分布图_《wps频数分布表怎么做》 在EXCEL中如何做频率分布图
  10. 视频教程-思科CCNP专题系列⑨:交换机安全-思科认证
  11. 雷电模拟器连接hb_原生的安卓模拟器来了,微软发布Your Phone,与三星独家合作...
  12. 计算机听录测试,电脑自带可以录音但是QQ语音检测不行
  13. dw怎么保存HTML手机可以看,【dw网页制作】如何使用Dreamweaver制作网页?如何用Dreamweaver制作个人虚拟网站?dreamweaver如何制作手机网站?...
  14. wlan、wifi、蜂窝、无线局域网的区别
  15. networks.XXX.ipam.config value Additional properties are not allowed (‘gateway‘ was unexpected) 解决办法
  16. MongoDB中where in操作
  17. 如何免费压缩图片-批量免费压缩图片大小的软件
  18. 自学Web前端的第14天
  19. 数据驱动的软件智能化开发| ChinaOSC
  20. 使用计算机眼睛保护方法,电脑族的护眼诀窍 正确使用眼睛的方法

热门文章

  1. BATCH+VBS脚本自动执行命令
  2. I2C从驱动到应用(中篇)
  3. mongodb 3.2性能测试
  4. spring 通过工厂方法配置Bean
  5. 所谓 jQuery 插件,怎样开发一个 jQuery 插件
  6. Apache软件基金会宣布Apache Unom成为顶级项目
  7. Algs4-1.4.7统计算术运算与比较次数
  8. 服务器监控软件ZABBIX
  9. 第4章 玩转数学公式
  10. 百篇大计敬本年之系统篇《八》—— Ubuntu16.04 挂载windows的 NTFS 文件系统时错误的解决方法...