NoSQL数据库-MongoDB 学习(一)
基本介绍
- MongoDB 是为了快速开发互联网 Web 应用而设计的数据库系统
- MongoDB 的设计目标是极简、灵活、作为 Web 应用栈的一部分
- MongoDB 的数据模型是面向文档的,所谓文档是一种类似于 JSON 的结构,所以我们可以简单的理解为MongoDB 中存放的是各种各样的 JSON(其实是BSON)
三个概念
- 数据库(database):数据库是一个仓库,存放集合
- 集合(collection):集合类似于数组,存放文档
- 文档(document):文档数据库中的最小单位,我们存储和操作的内容都是文档

安装与启动(Windows)
安装:
- 下载地址:https://www.mongodb.org/dl/win32/
- 下载后一路 next,傻瓜式安装,想修改安装路径就改一下
- 配置环境变量:找到安装位置,将 bin 文件夹的位置添加到环境变量 path 中
- 在 C 盘根目录创建一个 data 文件夹,data 里面创建一个 db 文件夹。(不在 C 盘创建也可以,不过启动的时候需要加上
--dbpath 路径)
命令行启动(不推荐):
打开 cmd 窗口,输入
mongod来启动服务器,出现如下界面即可。默认端口 27017,可以通过
--port 端口号来指定。
浏览器访问:localhost:27017,出现如下界面

再打开一个 cmd 窗口,输入
mongo启动客户端,之后就可以对数据库进行操作了
创建服务的方式启动(推荐)
以命令行的方式启动有些麻烦,而且打开的 cmd 窗口关闭后 mongodb 服务也会关闭,因此我们需要将其设置为后台运行
在 C 盘创建 data 文件夹,data 下创建 db 和 log 文件夹
在安装目录(bin 的同级目录)添加一个
mongod.cfg文件,添加如下内容systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
以管理员身份打开 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"

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

如果启动失败,证明上边的操作有误,在控制台输入
sc delete MongoDB删除之前配置的服务,然后从第一步再来一次。
基本命令
show dbs / show databases:显示所有的数据库use <database name>:使用指定数据库db:查看当前正在使用的数据库show collections:查看当前数据库中所有的集合
CRUD 操作
格式:db.集合名.操作(数据)
增加
/*在 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(...)
查询
/*查询 person 集合下所有文档*/
db.person.find() /*查询一个*/
db.person.findOne() /*查询文档数量*/
db.person.find().count()
更新
/*可以修改、替换集合中的一个或多个文档*/
db.person.update({name: "张三"}, {$set:{name: "王五"}}) /*修改集合中的一个文档*/
db.collection.updateOne() /*修改集合中的多个文档*/
db.collection.updateMany() /*替换集合中的一个文档*/
db.collection.replaceOne()
删除
/*删除集合中的一个或多个文档(默认删除多个)*/
db.collection.remove() /*删除集合中的一个文档*/
db.collection.deleteOne() /*删除集合中的多个文档*/
db.collection.deleteMany() /*清空一个集合*/
db.collection.remove({}) /*删除一个集合*/
db.collection.drop() /*删除一个数据库*/
db.dropDatabase()
NoSQL数据库-MongoDB 学习(一)的更多相关文章
- NoSQL 数据库产品学习总结(一)
NoSQL 数据库产品学习总结(一) 本篇文章共分为四个章节,会陆续整理下 Memcached.Redis.tair.mongodb.hbase.SequoiaDB. Cassandra的相关知识. ...
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- NoSql数据库MongoDB系列(1)——MongoDB简介
一.NoSQL简介 NoSQL(Not Only SQL ),意即“不仅仅是SQL” ,指的是非关系型的数据库 .是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.No ...
- [NoSql注入] MongoDB学习
0x00 安装 下载:http://dl.mongodb.org/dl/win32/x86_64 安装:http://www.runoob.com/mongodb/mongodb-window-ins ...
- 分布式NoSQL数据库MongoDB初体验-v5.0.5
概述 定义 MongoDB官网 https://www.mongodb.com/ 社区版最新版本5.0,其中5.2版本很快也要面世了 MongoDB GitHub源码 https://github.c ...
- 架构实战项目心得(六):后台服务nosql数据库mongodb
一.架构介绍 mongodb有几种部署方式,这里采用的是副本集架构(Replica Set). 为了防止单点故障就需要引副本(Replication),当发生硬件故障或者其 ...
- NoSQL数据库-MongoDB和Redis
http://blog.csdn.net/tea_wu/article/details/19050277 http://www.uml.org.cn/sjjm/201212205.asp
- NoSQL 数据库概览及其与 SQL 语法的比较
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...
- NoSQL数据库概览及其与SQL语法的比較
[文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...
随机推荐
- Shiro密码重试次数限制
如在 1 个小时内密码最多重试 5 次,如果尝试次数超过 5 次就锁定 1 小时,1 小时后可再次重试,如果还是重试失败,可以锁定如 1 天,以此类推,防止密码被暴力破解.我们通过继承 HashedC ...
- FastJson对实体类和Json还有JSONObject相互转换
1. 实体类或集合转JSON串 String besnString = JSONObject.toJSONString(实体类); 2.JSON串转JSONObject JSONObject json ...
- Spring中的AOP(二)
2.5 Spring的织入 在上一篇文章中,我们介绍了Pointcut.Advice.Advisor三个必要模块,剩下的工作就是把它们拼装起来,也就是织入过程.在Spring中,使用类org.spri ...
- [ APUE ] 第三章 文件系统
1. 文件描述符 打开或创建一个文件时,内核向进程返回一个文件描述符,当读.写一个文件时,用open()或creat()返回的文件描述符标识该文件,将其作为参数传递给write.read. stdin ...
- Struts2 执行流程 以及 Action与Servlet比较 (个人理解)
上图提供了struts2的执行流程.如下: 1:从客户端发出请求(HTTPServletRequest). 2:请求经过各种过滤器(filter),注:一般情况下,如SiteMesh等其他过滤器要放在 ...
- F查询与Q查询、事务及其它
一.F查询和Q查询 1.1 F查询 在上面所有的例子中,我们构造的过滤器都是将字段值与某个我们自己设定的常量做比较.如果是对两个字段的值做比较,那这时候就要用到F查询了. Django提供F()来做这 ...
- Linux-基于公私钥实现免密码登录
STEP1 在任意一个Linux机器上利用ssh-keygen 命令选择一种加密算法,生成一个密钥对.输入保存密钥对的位置和密码,输入完毕会在指定的目录,默认为/root/.ssh/下生成密钥对 语法 ...
- 苹果XR手机的音频体验测试总结
苹果XR手机的音频 苹果XR算是苹果手机历史上一个里程碑的型号了,是苹果憋了两年的大招,连苹果9的称号就不要了.直接是X.说明苹果对它给予的希望很大.作为一个音频算法工程师,一直想体验一下XR的音 ...
- 【neo4j】文件管理路径、数据备份、创建新数据库、导入数据等操作记录
neo4j一般的配置路径如下 一.备份数据 使用neo4j-admin命令. 首先,先找到数据的存储路径,然后关闭数据库. 关闭数据库的语句如下: #切换到/bin目录下 ./neo4j stop 然 ...
- caffe的python接口学习(2)生成solver文件
caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面 有一些参数需要计算的,也不是乱设置. 假设我们有50000个训练样本,batch_si ...