一、MongoDB数据库基础

1、MongoDB数据库介绍

什么是MongoDB

  MongoDB是非关系型数据库中的一种,是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。MongoDB是面向文档的数据库(多个文档组成集合,多个集合组成数据库)(一个实例可以承载多个数据库、每个数据库都有独立的权限、保留数据库的名称(admin\local\config等)),区分大小写。Key唯一,不可重复。文档可嵌套。键值对是有序的。集合就是一组文档,文档类似于关系库里的行,集合类似于关系库里的表。集合中的文档无需固定的结构(与关系型数据库的区别)。

集合的命名规则:

  不能是空字符串(" ")

  不能包含\0字符(空字符)

  不能使用system.的前缀(系统保留)

  建议不包含保留字 "$"

  用 . 分割不同命名空间的子集合(如:blog.users,blog.posts)

2、安装及配置

下载:

https://www.mongodb.com/download-center/community

启动:

windows: mongod.exe --dbpath D:MongoDB\data
linux: sudo service mongod start
mac: mongod --config /usr/local/etc/mongod.conf

运行成功。

3、使用命令行操作数据库(CRUD增删改查)

新增数据(create):

查看本地有多少数据库:

show dbs;

要使用哪个数据库直接:

use admin

查看在那个数据库下:

db

如果我们需要创建student数据库直接:

use student;

接下来,我们需要添加一个文档

stu = {
... name: "lishuntao",
... age: ""
... }

文档添加好了我们需要放到数据库中去。

db.student.insert(stu);
db.student.insert({name:"li",gender:"male"});

 查询(Read)

db.student.find();
db.student.finOne();

 修改数据(Update)

db.student.update({name:"wang"},{name:"wangS"});  #第一个参数是条件,第二个是更新的文档的值

对比一下会发现,文档已经被更新,ID是一样的。但更新的是直接用更新的数据替换原来的数据,ID没变。但假如我只想更新部分,而不是全部呢?

stu_obj = db.student.findOne();
stu_obj.name = "lishun";
db.student.update({name:"lishuntao"},stu_obj)

 删除数据(delete):

db.student.remove({name:"lishun"});#remove参数直接跟条件,满足条件的都会删除。
db.student.remove({});#如果条件为空,那么会删除所有的文档

db.student.insertMany(
[
{name:"lishuntao",age:18,sex:"male",grade:45},
{name:"liso",age:15,sex:"famale",grade:35},
{name:"litao",age:16,sex:"male",grade:55},
{name:"lishun",age:14,sex:"famale",grade:65},
{name:"ltao",age:17,sex:"famale",grade:25},
{name:"bbo",age:20,sex:"male",grade:35},
{name:"lanlan",age:18,sex:"famale",grade:20},
{name:"xiaoxiao",age:19,sex:"male",grade:18},
{name:"kankan",age:45,sex:"famale",grade:10},
{name:"mingming",age:20,sex:"male",grade:75},
{name:"meimei",age:25,sex:"famale",grade:85},
{name:"yiyi",age:18,sex:"male",grade:35},
{name:"sisi",age:16,sex:"famale",grade:36},
{name:"siyi",age:10,sex:"male",grade:37},
{name:"taotao",age:8,sex:"famale",grade:96},
]
)

(1)查询所有男生的数据(只需要学生的姓名和年龄):

db.student.find({sex:"male"},{name: 1,age: true,_id: 0});

(2)查询成绩及格的学生信息(学生成绩大于等于60):

db.student.find({grade:{"$gte":60}});

(3)查询所有18岁的男生和16岁的女生的数据

db.student.find({"$or":[{sex:"male",age:18},{sex:"female",age:16}]});

(4)按照学生的年龄进行排序

db.student.find().sort({age:1});#升序
db.student.find().sort({age:-1});#降序

(5)将所有的女学生年龄增加一岁

db.student.update({},{"$inc":{age:1}},{multi:true});#所有的学生
db.student.update({sex:"famale"},{"$inc":{age:1}},{multi:true});#所有的女学生

4、图形化管理工具操作

下载:

https://robomongo.org/download

打开网页,点击下载弹出来根据自己系统下载不同系统的图形化工具。 下载、解压、安装。其他的功能直接看官方文档操作,方法和这里大同小异。

01-MongoDB数据库基础的更多相关文章

  1. MongoDB数据库基础操作

    前面的话 为了保存网站的用户数据和业务数据,通常需要一个数据库.MongoDB和Node.js特别般配,因为Mongodb是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储 ...

  2. MongoDB数据库基础

    MongoDB简介 MongoDB是一种文档型的非关系型数据库(NoSQL),举例如下: {“foo”:,"greeting":"Hello,world!"} ...

  3. MongoDB数据库 : 基础

    三元素:数据库 集合 文档(json的扩展bson) 服务启动重启停止: sudo service mongodb start(stop,restart) 修改配置文件 /etc/mongodb.co ...

  4. 004.MongoDB数据库基础使用

    一 数据库管理 1.1 创建数据库 [root@uhost ~]# mongo --host 172.24.9.225 --port 27017 -u useradmin -p useradmin & ...

  5. MongoDB数据库-基础篇

    一使用mongodb 1.常用的命令 show dbs    显示数据库列表 use dbname    进入dbname数据库,大小写敏感,没有这个数据库也不要紧 show collections ...

  6. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用

    在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...

  7. 数据库基础 非关系型数据库 MongoDB 和 redis

    数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...

  8. SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑

    本文源码:GitHub·点这里 || GitEE·点这里 一.NoSQL简介 1.NoSQL 概念 NoSQL( Not Only SQL ),意即"不仅仅是SQL".对不同于传统 ...

  9. node.js零基础详细教程(6):mongodb数据库操作

    第六章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

随机推荐

  1. 19.Linux进程管理概述

    1.进程基本概述 当我们运行一个程序,那么我们将运行的程序叫进程. PS1: 当程序运行为进程后,系统会为该进程分配内存,以及进程运行的身份和权限. PS2: 在进程运行的过程中,服务器上会有各种状态 ...

  2. Java_条件控制与循环控制

    条件控制语句: 1.     if-else语句 if(条件1){ 代码块1; }else if(条件2){ 代码块2; }else{ 代码块3; } 2.     switch语句 switch(变 ...

  3. 基于SEER的区块链版赛亚麻将游戏Pre alpha版本内测啦!

    游戏基于SEER测试网络文体平台模块(Culture and Sports Platform,CSP),正在进行数据调试等工作,大家可以尝鲜体验. 此游戏账户和资金等核心系统完全基于区块链,但目前运行 ...

  4. EFCore--->> CodeFirst (Vs2019 Core3.0)的简单使用

    直接上干货 EFCore--->> CodeFirst (Vs2019 Core3.0) 1: 安装下面3个对应的package(在Nuget控制台或者直接NuGet包查询点击下载,我喜欢 ...

  5. Leetcode Tags(1)Linked List

    1.知识点回顾 https://www.cnblogs.com/BigJunOba/p/9174206.html https://www.cnblogs.com/BigJunOba/p/9174217 ...

  6. 设计模式C++描述----12.享元(Flyweight)模式

    一. 概述 在面向对象系统的设计何实现中,创建对象是最为常见的操作. 这里面就有一个问题:如果一个应用程序使用了太多的对象,就会造成很大的存储开销.特别是对于大量轻量级(细粒度)的对象,比如在文档编辑 ...

  7. Java内存模型相关原则详解

    在<Java内存模型(JMM)详解>一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则.而Java内存模型又是围绕着在并发过程中如何处理原子性.可见性以及有序性这三个特征来构 ...

  8. SpringBoot 整合 Elasticsearch深度分页查询

    es 查询共有4种查询类型 QUERY_AND_FETCH: 主节点将查询请求分发到所有的分片中,各个分片按照自己的查询规则即词频文档频率进行打分排序,然后将结果返回给主节点,主节点对所有数据进行汇总 ...

  9. st表、树状数组与线段树 笔记与思路整理

    已更新(2/3):st表.树状数组 st表.树状数组与线段树是三种比较高级的数据结构,大多数操作时间复杂度为O(log n),用来处理一些RMQ问题或类似的数列区间处理问题. 一.ST表(Sparse ...

  10. ASP_MVC项目设计技巧规则

    对于上述这种类型的前台页面,属于典型的List型的页面,那么,对于model的设计,要考虑前台人员的负担,尽量简洁: model: Name : 对应产品名称,如FMOS_WPF.FMOS_Tun.. ...