文章目录

  • 一、NoSQL 简介
    • 1.1 NoSQL的优点
    • 1.2 NoSQL的缺点
    • 1.3 NoSQL的分类
  • 二、MongoDB
    • 2.0 demo示例
    • 2.1 install and connect mongoose
    • 2.2 基本指令

一、NoSQL 简介

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是非关系型的数据库。

NoSQL用于超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)

这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

1.1 NoSQL的优点

  • 高可扩展性
  • 分布式计算
  • 低成本
  • 架构的灵活性,半结构化数据
  • 没有复杂的关系

1.2 NoSQL的缺点

  • 没有标准化
  • 有限的查询功能(到目前为止)
  • 最终一致是不直观的程序

1.3 NoSQL的分类


接下来重点讲解 文档存储类型的MongoDB

(文档存储一般用类似json的格式存储)

二、MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统

在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

  • Schema: 相当于一个数据库的模板.
    Model可以通过mongoose.model集成其基本属性内容. 当然也可以选择不继承.

  • Model:基本文档数据的父类,通过集成Schema定义的基本方法和属性得到相关的内容.

  • instance: 真正的数据, 通过 new Model()初始化得到.

2.0 demo示例

const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/test');
const con = mongoose.connection;
con.on('error', console.error.bind(console, '连接数据库失败'));
con.once('open',()=>{//定义一个schemalet Schema = mongoose.Schema({category:String,name:String});Schema.methods.eat = function(){console.log("I've eatten one "+this.name);}//继承一个schemalet Model = mongoose.model("fruit",Schema);//生成一个documentlet apple = new Model({category:'apple',name:'apple'});//存放数据apple.save((err,apple)=>{if(err) return console.log(err);apple.eat();//查找数据Model.find({name:'apple'},(err,data)=>{console.log(data);})});
})

2.1 install and connect mongoose

使用mongoose前,需要电脑已有 nodeJS和mongodb数据库.

下载mongoose:

npm install mongoose --save

连接mongoose:

const mongoose = require('mongoose');mongoose.connect('mongodb://localhost:27017/test');
const con = mongoose.connection;
con.on('error', console.error.bind(console, '连接数据库失败'));
con.once('open',()=>{//成功连接
})

2.2 基本指令

  1. show dbs 显示数据库

  2. show collections 显示数据库中的集合

  3. db.<collection>.insert(doc) 插入文档

  4. db <collection>.insertMany(doc 插入多个

例如:

db.runoob.insert({"name":"erya"})db.collection.insertMany([ <document 1> , <document 2>, ... ],
  1. db.<collection>.find() 查看所有的文档
  2. db.<collection>.find({key:value}) 查看带有指定key value文档的集合
  3. db.<collection>.findOne({key:value}).name 查看指定key value的第一个文档
  4. db.<collection>.find({key:value}).count() 查看数量
  5. db.<collection>.find({key:value}).length() 查看数量
  6. db.<collection>.find().limit(num)限制查询出的数量
  7. db.<collection>.update(doc1,doc2) 把查询带有doc1的属性的文档用doc2替代
  8. db.student.update({age:1000},{$set:{strenth:10}}) 如何设置属性,没有属性可以增加属性
  9. db.student.update({age:1000},{$unset:{strenth:10}}) 删除strenth为key的条目
  10. db.student.remove(doc,isSingle)   删除一个或者多个
  11. db.student.deleteOne(doc) 删除一个
  12. db.student.deleteMany(doc) 删除多个
  13. remove(doc,true) 第二个参数传入true,则只删除一个
  14. remove({}) 全部删除

a. $ne不等于

例:查询x 的值不等于3 的数据

db.things.find( { x : { $ne : 3 } } );

MongoDB(NoSQL)数据库入门及基本操作相关推荐

  1. 刘瑜《NoSQL数据库入门与实践 基于MongoDB、Redis》PDF下载

    NoSQL数据库入门与实践 基于MongoDB.Redis [作 者]刘瑜,刘胜松著 [形态项] 483 [出版项] 北京:中国水利水电出版社 , 2018.03 [ISBN号]978-7-5170- ...

  2. NoSQL数据库入门概述

    关系型数据库与NoSql数据库 什么是NoSQL Not Only SQL,其含义是:适合关系型数据库的时候就是用关系型数据库,不适用的时候也没必要非得使用关系型数据库不可,可以考虑使用更加合适的数据 ...

  3. nosql数据库入门_NoSQL入门资料

    nosql数据库入门 虽然您中的某些人可能是NoSQL专家,但通常缺乏对NoSQL的扎实知识,以及一些常见的神话. 具体地说,诸如NoSQL适用性/用例及其与关系数据库的比较(公平和不公平)之类的主题 ...

  4. nosql数据库入门_NoSQL入门三步指南

    nosql数据库入门 我一直在研究NoSQL数据库几个月,并希望与我分享我的经验. 如果您打算开始学习NoSQL数据库,那么这篇文章可能会对您有所帮助. 我会尝试链接我认为有用的资源. 步骤1:什么是 ...

  5. 大数据数据库选型:NoSQL数据库入门

    大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据数据库培训分享,我们就来 ...

  6. NoSQL数据库入门

    为什么80%的码农都做不了架构师?>>>    NoSQL数据库入门 本书是一本NoSQL入门书,从最基本的NoSQL发展史开始,介绍了memcached.Tokyo.Redis和M ...

  7. 大数据开发学习:NoSQL数据库入门

    大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据开发学习分享,我们就来聊 ...

  8. Nosql复习笔记,教材《NoSQL数据库入门与实践》

    Nosql复习笔记 目录 一.NoSQL数据库的主要技术特点有以下几种. 二.单机的局限性 三.服务器的纵横扩充 四.帽子定理CAP 五.BASE:基本可用(BA). 软状态(S).最终一致性(E) ...

  9. java 连nosql_浅谈 Java 中 MongoDB NoSQL数据库使用指南

    MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB. 一.引入MongoDB Java Driver包 如果需要操作MongoDB的J ...

最新文章

  1. Java 装饰器模式详解
  2. Nemuria UML架构图 第3次迭代. 重构
  3. 一棵树的生物量怎么算_宾利的眼镜盒价值2万,算坑人吗?网友:良心产品,不坑穷人...
  4. java jvm 查看内存_JVM:查看java内存情况命令
  5. Linux笔记-nohup和
  6. oracle数据库关不掉,oracle进程关不掉的问题??新手问题
  7. 大数据分析必须要会的数据处理技巧!!!
  8. BeyondCompare3提示许可密钥过期完美解决方法:3281-0350
  9. 笑脸哭脸循环c语言,买卖信号(哭脸笑脸)选股公式(源码)
  10. redis批量删除指定的key
  11. Ubuntu 下 svn 服务器的安装配置
  12. 动态规划的关键 —— 子问题 公式化
  13. oracle .net 中文,asp.net查出 oracle数据库中的中文乱码问题
  14. php指令,php命令行下的常用命令
  15. java选项无法启动怎么解决_win7系统下java插件无法运行的解决方法
  16. 三笔输入法 开发过程记录
  17. 乡镇医院计算机管理,乡镇卫生院管理系统
  18. 【无2022年聚合工艺考试模拟100题模拟考试平台操作
  19. VBScript UBound 函数
  20. 利用C语言实现大数加减法

热门文章

  1. ce修改器怎么用 ce修改器使用基础教程
  2. 一文了解Beautiful Soup基本和高级用法
  3. 2023全国特种设备作业人员(N1)叉车司机模拟一[安考星]
  4. 【重温SSM框架系列】15 - SSM系列博文总结【SSM杀青篇】
  5. 【计算机系统】缓冲区溢出攻击实验
  6. labview100个实例之信号采集
  7. python—matplotlib数据可视化实例注解系列-----之plot图线型设置
  8. 串口通信与并口通信的浅理解
  9. AutoEventWireup属性
  10. 【CEP 扩展开发一】简介