基本介绍

  • MongoDB 是为了快速开发互联网 Web 应用而设计的数据库系统
  • MongoDB 的设计目标是极简、灵活、作为 Web 应用栈的一部分
  • MongoDB 的数据模型是面向文档的,所谓文档是一种类似于 JSON 的结构,所以我们可以简单的理解为MongoDB 中存放的是各种各样的 JSON(其实是BSON)

三个概念

  • 数据库(database):数据库是一个仓库,存放集合
  • 集合(collection):集合类似于数组,存放文档
  • 文档(document):文档数据库中的最小单位,我们存储和操作的内容都是文档

安装与启动(Windows)

安装:

  1. 下载地址:https://www.mongodb.org/dl/win32/
  2. 下载后一路 next,傻瓜式安装,想修改安装路径就改一下
  3. 配置环境变量:找到安装位置,将 bin 文件夹的位置添加到环境变量 path 中
  4. 在 C 盘根目录创建一个 data 文件夹,data 里面创建一个 db 文件夹。(不在 C 盘创建也可以,不过启动的时候需要加上 --dbpath 路径

命令行启动(不推荐):

  1. 打开 cmd 窗口,输入 mongod 来启动服务器,出现如下界面即可。

    默认端口 27017,可以通过 --port 端口号 来指定。

  2. 浏览器访问:localhost:27017,出现如下界面

  3. 再打开一个 cmd 窗口,输入 mongo 启动客户端,之后就可以对数据库进行操作了

创建服务的方式启动(推荐)

以命令行的方式启动有些麻烦,而且打开的 cmd 窗口关闭后 mongodb 服务也会关闭,因此我们需要将其设置为后台运行

  1. 在 C 盘创建 data 文件夹,data 下创建 db 和 log 文件夹

  2. 在安装目录(bin 的同级目录)添加一个 mongod.cfg 文件,添加如下内容

    systemLog:
    destination: file
    path: c:\data\log\mongod.log
    storage:
    dbPath: c:\data\db
  3. 以管理员身份打开 cmd 窗口,输入以下命令(将其中的路径改为自己安装的路径)

    sc.exe create MongoDB binPath= "\"D:\devtools\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"D:\devtools\MongoDB\Server\3.4\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

  4. 打开服务列表,右键启动 MongoDB

  5. 如果启动失败,证明上边的操作有误,在控制台输入 sc delete MongoDB 删除之前配置的服务,然后从第一步再来一次。

基本命令

  • show dbs / show databases:显示所有的数据库
  • use <database name>:使用指定数据库
  • db:查看当前正在使用的数据库
  • show collections:查看当前数据库中所有的集合

CRUD 操作

格式:db.集合名.操作(数据)

  1. 增加

    /*在 person 集合中增加一个文档*/
    db.person.insertOne({name: "张三", age: 20, gender: "male"}) /*在 person 集合中增加一个或多个文档*/
    db.person.insert([{name: "张三", age: 20, gender: "male"},{name: "李四", age: 30, gender: "male"}]) /*插入多个也可以通过insertMany实现*/
    db.person.insertMany(...)
  2. 查询

    /*查询 person 集合下所有文档*/
    db.person.find() /*查询一个*/
    db.person.findOne() /*查询文档数量*/
    db.person.find().count()
  3. 更新

    /*可以修改、替换集合中的一个或多个文档*/
    db.person.update({name: "张三"}, {$set:{name: "王五"}}) /*修改集合中的一个文档*/
    db.collection.updateOne() /*修改集合中的多个文档*/
    db.collection.updateMany() /*替换集合中的一个文档*/
    db.collection.replaceOne()
  4. 删除

    /*删除集合中的一个或多个文档(默认删除多个)*/
    db.collection.remove() /*删除集合中的一个文档*/
    db.collection.deleteOne() /*删除集合中的多个文档*/
    db.collection.deleteMany() /*清空一个集合*/
    db.collection.remove({}) /*删除一个集合*/
    db.collection.drop() /*删除一个数据库*/
    db.dropDatabase()

NoSQL数据库-MongoDB 学习(一)的更多相关文章

  1. NoSQL 数据库产品学习总结(一)

    NoSQL 数据库产品学习总结(一) 本篇文章共分为四个章节,会陆续整理下 Memcached.Redis.tair.mongodb.hbase.SequoiaDB. Cassandra的相关知识. ...

  2. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  3. NoSql数据库MongoDB系列(1)——MongoDB简介

    一.NoSQL简介    NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.No ...

  4. [NoSql注入] MongoDB学习

    0x00 安装 下载:http://dl.mongodb.org/dl/win32/x86_64 安装:http://www.runoob.com/mongodb/mongodb-window-ins ...

  5. 分布式NoSQL数据库MongoDB初体验-v5.0.5

    概述 定义 MongoDB官网 https://www.mongodb.com/ 社区版最新版本5.0,其中5.2版本很快也要面世了 MongoDB GitHub源码 https://github.c ...

  6. 架构实战项目心得(六):后台服务nosql数据库mongodb

    一.架构介绍        mongodb有几种部署方式,这里采用的是副本集架构(Replica Set).        为了防止单点故障就需要引副本(Replication),当发生硬件故障或者其 ...

  7. NoSQL数据库-MongoDB和Redis

    http://blog.csdn.net/tea_wu/article/details/19050277 http://www.uml.org.cn/sjjm/201212205.asp

  8. NoSQL 数据库概览及其与 SQL 语法的比较

    NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...

  9. NoSQL数据库概览及其与SQL语法的比較

    [文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...

随机推荐

  1. MySQL实战45讲笔记一

    MySQL的基本架构大体可以分为server层和存储引擎层,逻辑架构图如下: Server层除了图中显示的,还包括所有的内置函数(包括日期.时间.数学和加密函数等),存储过程.触发器.视图等跨存储引擎 ...

  2. 一个工作了四年的java程序员的心得体会

    年底了,该给自己写点总结了!从毕业到现在已经快4年啦,一直在Java的WEB开发行业混迹.我不是牛人,但是自我感觉还算是个合格的程序员,有必要写下自己将近4年来的经历,给自我以提示,给刚入行的朋友提供 ...

  3. 5、struct2的支持ModelDriver获得参数

    1.在以前的代码中我们我们需要获得jsp传递过来的参数我们采用下面的方式获得 package com.weiyuan.test; /** * struct2的action可以不继承任何框架的接口 * ...

  4. android 抓取native层奔溃

    使用android的breakpad工具 使用这个工具需要下载Breakpad的源码,然后进行编译,编译之后会生成两个工具 我们使用这两个工具来解析奔溃的位置.这里我们可以下载已经编译好的工具 下载地 ...

  5. Javascript的单线程和异步编程

    运行时概念 下面的内容解释了一个理论上的模型.现代 JavaScript 引擎着重实现和优化了描述的几个语义. 可视化描述 栈 函数调用形成了一个栈帧. function foo(b) { var a ...

  6. DOM-BOM-EVENT(6)

    6.BOM 6.1.什么是BOM? BOM(Browse Object Model),浏览器对象模型,没有相关标准,是约定俗成的东西,定义了一些操作浏览器的方法和属性,大部分方法都是通过window对 ...

  7. Nginx 反向代理可以缓存 HTTP POST 请求页面吗?

    摘要: Nginx 反向代理可以缓存 HTTP POST 请求页面吗?  2017-09-05 景峯 Netkiller 本文节选自<Netkiller Web 手札> 作者:netkil ...

  8. 数据库周刊30丨数据安全法草案将亮相;2020数据库产业报告;云南电网上线达梦;达梦7误删Redo Log;Oracle存储过程性能瓶颈;易鲸捷实践案例……

    摘要:墨天轮数据库周刊第30期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档. 热门资讯 1.数据安全法草案即将亮相:将确立数据分级分类管理.应急处置制度[摘要]数据安全法草案即将在本 ...

  9. js写一个简单的九九乘法表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. C++ MFC 文件操作(新建,删除,剪切,复制,读数据,写数据,重命名)

    源文件:http://pan.baidu.com/s/1ve0hV 这是运行mfc缺失的dll动态链接库:http://pan.baidu.com/s/17pGlT 哈哈,我也是初接触C++,基础的什 ...