博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB ( 一 )初识
阅读量:6004 次
发布时间:2019-06-20

本文共 2692 字,大约阅读时间需要 8 分钟。

我们先来了解一下非关系型数据库和关系型数据库,首先需要了解一下关系型数据库,比如,我们所熟知的 Oracle、mysql等。

关系型数据库和非关系型数据库

  1. 实质: 非关系型数据库的实质,其实非关系型数据库是传统关系型数据库的功能的阉割版,通过减少用不到的或者很少使用的功能,来大幅度提高产品的性能。
  2. 价格:目前的非关系型数据库基本都是免费的
  3. 功能: 实际开发中,很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。

MongoDB简介:

Mongodb 是一个基于分布式文件存储的数据库,由C++编写。 目的是为WEB应用提供扩展的高性能的数据存储方案。它是介于关系型和非关系型数据库中间的产品,他支持的数据结构比较松散,是类似于json的Bson格式,因此可以存储比较复杂的数据类型。
mongo shell
// 启动mongodb 之后var x='Hello World'print(x) // 注意这里虽然执行的时js指令,但是不能使用console.log , 只能使用print()function jspang(){    return 'JSPang';}print(jspang())
MongoDB的存储结构

MongoDB的存储结构

以前我们的关系型数据库的数据结构都是顶层是库,库下面是表,表下面是数据。但是MongoDB有所不同,库下面是集合,集合下面是文档,可以看下面这张图进行了解一下。
基础Shell命令
  • show dbs :显示已有数据库,如果你刚安装好,会默认有local、admin(config),这是MongoDB的默认数据库,我们在新建库时是不允许起这些名称的。
  • use admin: 进入数据库,也可以理解成为使用数据库
  • show collections: 显示数据库中的集合
  • db:显示当前位置,也就是你当前使用的数据库名称,这个命令算是最常用的,因为你在作任何操作的时候都要先查看一下自己所在的库,以免造成操作错误。
用js文件写mongo命令

首先启动 mongodb

// getTask.jsvar username = "zjj";var time = Date.parse(new Date());var jsonData = {"loginUser": username, "loginTime": time}var db = connect('login') // 连接数据库db.login.insert(jsonData)print('log print success')
在该目录下执行mongo getTask.js
批量注入
// 批量数据插入是以数组的方式进行的db.test.insert([    {"_id":1},    {"_id":2},    {"_id":3}]);// 注意一次插入不要超过48M,向.zip和大图片什么的尽量用静态存储,MongoDB存储静态路径就好,这也算是一个规则。// 使用数组批量插入的效率比使用循环插入的效率高的多
Update常见错误
// demo01.jsvar workmate1={    name:'JSPang',    age:33,    sex:1,    job:'前端',    skill:{        skillOne:'HTML+CSS',        SkillTwo:'JavaScript',        SkillThree:'PHP'    },    regeditTime:new Date()} var workmate2={    name:'ShengLei',    age:30,    sex:1,    job:'JAVA后端',    skill:{        skillOne:'HTML+CSS',        SkillTwo:'J2EE',        SkillThree:'PPT'    },    regeditTime:new Date()} var workmate3={    name:'MinJie',    age:20,    sex:1,    job:'UI设计',    skill:{        skillOne:'PhotoShop',        SkillTwo:'UI',        SkillThree:'Word+Excel+PPT'    },    regeditTime:new Date()} var db=connect('company')var workmateArray=[workmate1,workmate2,workmate3]db.workmate.insert(workmateArray)print('[SUCCESS]: The data was inserted successfully.');// 构造数据// 运行demo01mongo> load('./demo01.js');
var db=connect('company')db.workmate.update({name:'MinJie'},{sex:0}) print('[update]: The data was updated successfully');// 我们会发现需要修改的那条数据已经被大变样了,只剩下了只有 sex:0

正确的修改方法

// demo02.jsvar db=connect('company') var workmate3={    name:'MinJie',    age:20,    sex:0,    job:'UI设计',    skill:{        skillOne:'PhotoShop',        SkillTwo:'UI',        SkillThree:'Word+Excel+PPT'    },    regeditTime:new Date()}db.workmate.update({name:'MinJie'},workmate3)  print('[update]: The data was updated successfully');

但是如果每次都这么来改,多麻烦呢。我们平时大多还是使用update修改器来修改

下一节我们来认识update修改器

转载地址:http://xipmx.baihongyu.com/

你可能感兴趣的文章
ios json转model的简单现实
查看>>
windows端部署python开发环境
查看>>
时隔一年,jQuery 发布 3.4.0 版本
查看>>
读懂这篇文章,你的阿里技术面就可以过关了 | Apache RocketMQ 101
查看>>
CentOS系统在不重启的情况下为虚拟机添加新硬盘
查看>>
JDBC连接ORACLE的三种URL格式
查看>>
MySQL使用教程收集(语法教程/命令教程)
查看>>
DDNS
查看>>
脚本化HTTP 取得响应 指定请求
查看>>
音乐文件基础知识
查看>>
JNA简介
查看>>
document.referrer的用法
查看>>
网络编程懒人入门(三):快速理解TCP协议一篇就够
查看>>
汤晓鸥为CNN搓了一颗大力丸
查看>>
基于Python网易云音乐歌词爬取
查看>>
Android 事件总线 框架
查看>>
SpringBoot-00-之修改启动标题
查看>>
Android基础_3 Activity相对布局
查看>>
浅析KOA(1)
查看>>
Permutations I II@LeetCode
查看>>