博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB入门学习记录一:基本使用
阅读量:6948 次
发布时间:2019-06-27

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

hot3.png

什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

07093437_gacI.png

为什么要用MongoDB?

  • 无数据结构限制
    • 没有表结构的概念,每条记录可以有完全不同的结构
    • sql数据库需要先定义表结构再使用,mongodb不需要
  • 完全的索引支持
  • 方便的冗余与扩展
    • 复制集保证数据安全
    • 分片扩展数据规模

MongoDB的适用场景

1、数据缓存

2、高伸缩性

3、弱事务类型的应用

4、大数据量高并发的应用

MongoDB的安装(windows)

下载地址:。

可以选择下载安装文件或者压缩包直接解压出来,这里我习惯直接下载压缩包解压出来使用。

下载好的压缩包:

213105_Ibfw_3161152.png

解压后的目录结构:

213204_Cf4A_3161152.png

bin目录下两个重要的文件:mongod.exe、mongo.exe。前者是用于启动mongodb服务的,后者用于连接mongodb服务,为了方便在命令行中使用,需要配置环境变量,将bin目录配置到path目录下。

213732_32BS_3161152.png

搭建简单的MongoDB服务器

在某个目录下新建以下几个文件夹,这里在F:\mongoDB下新建了三个文件夹分别用来存储配置文件,数据文件和日志文件

214138_jcw5_3161152.png

,conf目录下新建一个配置文件,编写配置信息。配置相应的端口(mongoDB默认的端口为27017,如果使用默认端口,则无需指定)、数据库目录、日志文件的地址。

214628_jLOF_3161152.png

启动服务,在命令行窗口下输入:mongod -f F:\mongoDB\conf\mongo.conf,即可根据设置的配置启动服务。启动服务后会在dbpath下生成默认的数据库文件

215441_nfTw_3161152.png

连接MongoDB

这里讲的是利用mongo.exe进行连接,打开新的命令行窗口,输入mongo命令即链接上了,这里由于没有指定具体连接哪个数据库,因此默认的是链接test数据库。

220128_YXbG_3161152.png

在此命令窗口下键入相关命令实现对数据库不同的操作。这里先罗列出几个简单的命令:

db:查看当前使用的数据库

show dbs:显示有哪些数据库(如果一个数据库没有数据不会显示)。

use 数据库名:使用哪个数据库,如果没有该数据库,系统在使用到的时候会默认创建这个数据库。

show collections:显示当前数据库下所有的集合(类同于关系数据库的表)。

db.shutdownServer():关闭服务。

db.dropDatabase():删除当前使用的数据库。

MongoDB的基本使用

1、插入数据与查询数据

在mongodb中,集合就是数据库的表

写入数据的命令为:db.集合名.insert();

091943_1iAN_3161152.png

查询数据的命令为:db.集合名.find();如果需要指定查询某些数据,则在find中传入json串代表你要查询的数据。

092404_fNfG_3161152.png

查询集合有多少条数据:db.集合名.find().count()

分页排序查询数据:db.集合名.find().skip(start).limit(pagesize).sort();

100429_nfCH_3161152.png

注:这里排序total指定的1代表正序排列,-1位逆序排列

2、修改和删除

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(   
,
, { upsert:
, multi:
, writeConcern:
})

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。在更新的语句加上$set代表只更新指定的字段,其他字段不更新。
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

102321_qt00_3161152.png

remove() 方法用于更新已存在的文档。语法格式如下:

db.collection.remove(   
, { justOne:
, writeConcern:
})

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。

102829_4Kuy_3161152.png

删除集合:db.collection.drop();

103016_iKHR_3161152.png

3、创建索引

查看当前集合下的索引:db.product.getIndexes()

创建索引:db.product.ensureIndex();

实例:

103844_Um32_3161152.png

注:name后的1代表升序,-1代表倒叙。

转载于:https://my.oschina.net/silence88/blog/832941

你可能感兴趣的文章
通过SNMP获取接口速率 32位与64位的区别
查看>>
Windows上用gcc编译SQLite3
查看>>
bash位置参数的简介
查看>>
VirtualBox导入其他虚拟机后网络问题
查看>>
Weblogic修改密码口令验证策略
查看>>
js 正则通过class查找Tag内的内容。
查看>>
ZeroClipboard实现多个浏览器兼容的复制文本到剪贴板的功能
查看>>
动态SQL、绑定变量、静态SQL的性能对比
查看>>
还没学到的技术总不想先去偷窥,时机成熟才敢去解开神秘的面纱。
查看>>
因特尔:视网膜屏将于2013年到来
查看>>
VC删除注册表键值项
查看>>
Hadoop安装配置使用
查看>>
1.01 与 37.8
查看>>
微积分35--二重积分的计算
查看>>
java对象与字符串之间的序列化和反序列化
查看>>
人工智障 2 : 你看到的AI与智能无关
查看>>
Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS
查看>>
.net 面试题系列四(附答案)
查看>>
sql server的并发性
查看>>
windows php启动浏览器
查看>>