MongoDB(NoSQL)数据库入门及基本操作
文章目录
- 一、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 基本指令
show dbs
显示数据库show collections
显示数据库中的集合db.<collection>.insert(doc)
插入文档db <collection>.insertMany(doc
插入多个
例如:
db.runoob.insert({"name":"erya"})db.collection.insertMany([ <document 1> , <document 2>, ... ],
db.<collection>.find()
查看所有的文档db.<collection>.find({key:value})
查看带有指定key value文档的集合db.<collection>.findOne({key:value}).name
查看指定key value的第一个文档db.<collection>.find({key:value}).count()
查看数量db.<collection>.find({key:value}).length()
查看数量db.<collection>.find().limit(num)
限制查询出的数量db.<collection>.update(doc1,doc2)
把查询带有doc1的属性的文档用doc2替代db.student.update({age:1000},{$set:{strenth:10}})
如何设置属性,没有属性可以增加属性db.student.update({age:1000},{$unset:{strenth:10}})
删除strenth为key的条目db.student.remove(doc,isSingle)
删除一个或者多个db.student.deleteOne(doc)
删除一个db.student.deleteMany(doc)
删除多个remove(doc,true)
第二个参数传入true,则只删除一个remove({})
全部删除
a. $ne
不等于
例:查询x 的值不等于3 的数据
db.things.find( { x : { $ne : 3 } } );
MongoDB(NoSQL)数据库入门及基本操作相关推荐
- 刘瑜《NoSQL数据库入门与实践 基于MongoDB、Redis》PDF下载
NoSQL数据库入门与实践 基于MongoDB.Redis [作 者]刘瑜,刘胜松著 [形态项] 483 [出版项] 北京:中国水利水电出版社 , 2018.03 [ISBN号]978-7-5170- ...
- NoSQL数据库入门概述
关系型数据库与NoSql数据库 什么是NoSQL Not Only SQL,其含义是:适合关系型数据库的时候就是用关系型数据库,不适用的时候也没必要非得使用关系型数据库不可,可以考虑使用更加合适的数据 ...
- nosql数据库入门_NoSQL入门资料
nosql数据库入门 虽然您中的某些人可能是NoSQL专家,但通常缺乏对NoSQL的扎实知识,以及一些常见的神话. 具体地说,诸如NoSQL适用性/用例及其与关系数据库的比较(公平和不公平)之类的主题 ...
- nosql数据库入门_NoSQL入门三步指南
nosql数据库入门 我一直在研究NoSQL数据库几个月,并希望与我分享我的经验. 如果您打算开始学习NoSQL数据库,那么这篇文章可能会对您有所帮助. 我会尝试链接我认为有用的资源. 步骤1:什么是 ...
- 大数据数据库选型:NoSQL数据库入门
大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据数据库培训分享,我们就来 ...
- NoSQL数据库入门
为什么80%的码农都做不了架构师?>>> NoSQL数据库入门 本书是一本NoSQL入门书,从最基本的NoSQL发展史开始,介绍了memcached.Tokyo.Redis和M ...
- 大数据开发学习:NoSQL数据库入门
大数据处理,涉及到从数据获取到数据存储.数据计算的诸多环节,各个环节需要解决的问题不同,相关岗位要求的技能也不同.在数据存储阶段,对数据库选型是非常重要的一项工作.今天的大数据开发学习分享,我们就来聊 ...
- Nosql复习笔记,教材《NoSQL数据库入门与实践》
Nosql复习笔记 目录 一.NoSQL数据库的主要技术特点有以下几种. 二.单机的局限性 三.服务器的纵横扩充 四.帽子定理CAP 五.BASE:基本可用(BA). 软状态(S).最终一致性(E) ...
- java 连nosql_浅谈 Java 中 MongoDB NoSQL数据库使用指南
MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB. 一.引入MongoDB Java Driver包 如果需要操作MongoDB的J ...
最新文章
- Java 装饰器模式详解
- Nemuria UML架构图 第3次迭代. 重构
- 一棵树的生物量怎么算_宾利的眼镜盒价值2万,算坑人吗?网友:良心产品,不坑穷人...
- java jvm 查看内存_JVM:查看java内存情况命令
- Linux笔记-nohup和
- oracle数据库关不掉,oracle进程关不掉的问题??新手问题
- 大数据分析必须要会的数据处理技巧!!!
- BeyondCompare3提示许可密钥过期完美解决方法:3281-0350
- 笑脸哭脸循环c语言,买卖信号(哭脸笑脸)选股公式(源码)
- redis批量删除指定的key
- Ubuntu 下 svn 服务器的安装配置
- 动态规划的关键 —— 子问题 公式化
- oracle .net 中文,asp.net查出 oracle数据库中的中文乱码问题
- php指令,php命令行下的常用命令
- java选项无法启动怎么解决_win7系统下java插件无法运行的解决方法
- 三笔输入法 开发过程记录
- 乡镇医院计算机管理,乡镇卫生院管理系统
- 【无2022年聚合工艺考试模拟100题模拟考试平台操作
- VBScript UBound 函数
- 利用C语言实现大数加减法