文章目录

  • 一、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. 微软宣布.NET Native预览版
  2. oracle无法打开表的行集,Oracle错误ORA-22905:无法访问非嵌套表项中的行
  3. Xcode8注释有时会失效的解决方法
  4. linux挂载硬盘 只读,mount: /dev/vdb 写保护,将以只读方式挂载
  5. 免费体验|教你用Python掌握企业级产品开发规范要求的能力!
  6. Windows下批量删除svn配置文件夹.svn
  7. 人生最美妙与最残忍的事情是同一件,那就是不能重来
  8. 学习笔记-记ActiveMQ学习摘录与心得(二)
  9. git master主分支_Git分支管理策略及简单操作
  10. 【数据结构】平衡二叉树
  11. Java 图形用户界面-表格组件
  12. CentOS下安装JDK完整步骤
  13. 队列加分项(选作,根据博客质量加1-5分)(补博客)
  14. java 7 学习笔记_Java学习笔记7
  15. 安泰测试新手教程-泰克数字示波器使用方法
  16. python查内置函数,怎么查看python内置函数
  17. Windows 10 error code 0x80072efd
  18. crash工具分析sysdump使用
  19. 3个开源音乐播放器:Aqualung,Lollypop和GogglesMM
  20. 案例三:淘宝用户行为分析

热门文章

  1. 关于Nginx的深入浅出
  2. 技术人 | 如何写出一篇好的技术方案?
  3. 移动小王子--Intel Xscale处理器
  4. arp 华为 查看 路由器_华为路由器防止ARP攻击检查步骤
  5. 计算机作文素材,雅思写作素材积累之计算机相关表达
  6. 好奇号火星车旅行日志January 23, 2017 - Monday(火星日1589-1590)工程师们都去开会了
  7. 微信小程序-多行文本省略号并展示查看更多按钮
  8. 使用file-saver导出文件
  9. Android AudioEffect音效移植
  10. 专注协同和GRC,慧点20载践行中国软件助力中国企业走向世界