刘殿忠 發表於 2019-12-20 18:56:00

mongoDB

<h1><strong>1.&nbsp;</strong><strong>mongoDB</strong><strong>是什麽</strong></h1>
<p>mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。</p>
<p>存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary JSON)。</p>
<p>模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。</p>
<p>mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。</p>
<h1><strong>2. 安装</strong><strong>mongoDB</strong></h1>
<p>MongoDB安装很简单,基本无需安装,安装包解压后即可使用。</p>
<h3>2.1 用tar包安装</h3>
<h4>2.1.1 从官网下载最新版本mongoDB的tar包,解压</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.7.tgz</code></div>
<div class="line number2 index1 alt1"><code class="bash comments"># tar -zxvf mongodb-linux-x86_64-3.0.7.tgz</code></div>
<div class="line number3 index2 alt2"><code class="bash comments"># mkdir -p mongodb</code></div>
<div class="line number4 index3 alt1"><code class="bash comments"># cp -R -n mongodb-linux-x86_64-3.0.7/ mongodb</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>2.1.2 创建数据目录</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># mkdir -p /data/mongodb</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>2.1.3 启动mongoDB,有两种方法:</h4>
<p>命令行指定数据目录启动</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># mongod --dbpath /data/mongodb --logpath /var/log/mongodb.log</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>指定配置文件启动</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># mongod -f /etc/mongod_27019.conf</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>2.1.4 停止mongoDB</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># mongod -f /etc/mongod_27019.conf --shutdown</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>2.2 用yum安装</h3>
<p>本文例子是在Cent OS 7上进行安装,mongoDB版本是3.0</p>
<h4>2.2.1 添加yum源</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
<div class="line number6 index5 alt1">6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># vi /etc/yum.repos.d/mongodb-org-3.0.repo</code></div>
<div class="line number2 index1 alt1"><code class="bash plain"></code></div>
<div class="line number3 index2 alt2"><code class="bash plain">name=MongoDB Repository</code></div>
<div class="line number4 index3 alt1"><code class="bash plain">baseurl=https:</code><code class="bash plain">//repo</code><code class="bash plain">.mongodb.org</code><code class="bash plain">/yum/redhat/</code><code class="bash plain">$releasever</code><code class="bash plain">/mongodb-org/3</code><code class="bash plain">.0</code><code class="bash plain">/x86_64/</code></div>
<div class="line number5 index4 alt2"><code class="bash plain">gpgcheck=0</code></div>
<div class="line number6 index5 alt1"><code class="bash plain">enabled=1</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>2.2.2 安装mongoDB</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># yum install -y mongodb-org</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h4>2.2.3 启动mongoDB</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># systemctl start mongod</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>设定文件位置:/etc/mongod.conf</p>
<p>数据库路径:/var/lib/mongo</p>
<h4>2.2.4 问题点</h4>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">WARNING: Readahead&nbsp;</code><code class="bash keyword">for</code>&nbsp;<code class="bash plain">/var/lib/mongo</code>&nbsp;<code class="bash plain">is&nbsp;</code><code class="bash functions">set</code>&nbsp;<code class="bash plain">to 4096KB</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>1. 日志里出现上面的信息,需要调整Readahead的大小</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># blockdev --report</code></div>
<div class="line number2 index1 alt1"><code class="bash comments"># blockdev --setra 256 /dev/sda</code></div>
<div class="line number3 index2 alt2"><code class="bash comments"># blockdev --setra 256 /dev/dm-1</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>2. 日志里出现下面信息,需要修改内核参数</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">WARNING:&nbsp;</code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code>&nbsp;<code class="bash plain">is&nbsp;</code><code class="bash string">'always'</code><code class="bash plain">.</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>关闭透明大页</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash functions">echo</code>&nbsp;<code class="bash plain">never &gt;&nbsp;</code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/enabled</code></div>
<div class="line number2 index1 alt1"><code class="bash functions">echo</code>&nbsp;<code class="bash plain">never &gt;&nbsp;</code><code class="bash plain">/sys/kernel/mm/transparent_hugepage/defrag</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>3. Cent OS 7上需要把mongoDB添加到systemd,否则会出现下面的错误</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">systemd: Failed to start SYSV: Mongo is a scalable, document-oriented database..</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>将mongoDB添加到systemd</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
<div class="line number6 index5 alt1">6</div>
<div class="line number7 index6 alt2">7</div>
<div class="line number8 index7 alt1">8</div>
<div class="line number9 index8 alt2">9</div>
<div class="line number10 index9 alt1">10</div>
<div class="line number11 index10 alt2">11</div>
<div class="line number12 index11 alt1">12</div>
<div class="line number13 index12 alt2">13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># vi /usr/lib/systemd/system/mongod.service</code></div>
<div class="line number2 index1 alt1"><code class="bash plain"></code></div>
<div class="line number3 index2 alt2"><code class="bash plain">Description=mongodb database</code></div>
<div class="line number4 index3 alt1">&nbsp;</div>
<div class="line number5 index4 alt2"><code class="bash plain"></code></div>
<div class="line number6 index5 alt1"><code class="bash plain">User=mongod</code></div>
<div class="line number7 index6 alt2"><code class="bash plain">Group=mongod</code></div>
<div class="line number8 index7 alt1"><code class="bash plain">Environment=</code><code class="bash string">"OPTIONS=--quiet -f /etc/mongod.conf"</code></div>
<div class="line number9 index8 alt2"><code class="bash plain">ExecStart=</code><code class="bash plain">/usr/bin/mongod</code>&nbsp;<code class="bash plain">$OPTIONS run</code></div>
<div class="line number10 index9 alt1"><code class="bash plain">PIDFile=</code><code class="bash plain">/var/run/mongodb/mongod</code><code class="bash plain">.pid</code></div>
<div class="line number11 index10 alt2">&nbsp;</div>
<div class="line number12 index11 alt1"><code class="bash plain"></code></div>
<div class="line number13 index12 alt2"><code class="bash plain">WantedBy=multi-user.target</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>建立链接</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>重新加载systemctl</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># systemctl daemon-reload</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>2.3 设定文件说明</h3>
<p>设定文件 /etc/mongod.conf</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
<div class="line number6 index5 alt1">6</div>
<div class="line number7 index6 alt2">7</div>
<div class="line number8 index7 alt1">8</div>
<div class="line number9 index8 alt2">9</div>
<div class="line number10 index9 alt1">10</div>
<div class="line number11 index10 alt2">11</div>
<div class="line number12 index11 alt1">12</div>
<div class="line number13 index12 alt2">13</div>
<div class="line number14 index13 alt1">14</div>
<div class="line number15 index14 alt2">15</div>
<div class="line number16 index15 alt1">16</div>
<div class="line number17 index16 alt2">17</div>
<div class="line number18 index17 alt1">18</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">processManagement:</code></div>
<div class="line number2 index1 alt1"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">fork:&nbsp;</code><code class="bash functions">true</code></div>
<div class="line number3 index2 alt2">&nbsp;</div>
<div class="line number4 index3 alt1"><code class="bash plain">net:</code></div>
<div class="line number5 index4 alt2"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">bindIp: 127.0.0.1</code></div>
<div class="line number6 index5 alt1"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">port: 27017</code></div>
<div class="line number7 index6 alt2">&nbsp;</div>
<div class="line number8 index7 alt1"><code class="bash plain">storage:</code></div>
<div class="line number9 index8 alt2"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">dbPath:&nbsp;</code><code class="bash plain">/srv/mongodb</code></div>
<div class="line number10 index9 alt1">&nbsp;</div>
<div class="line number11 index10 alt2"><code class="bash plain">systemLog:</code></div>
<div class="line number12 index11 alt1"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">destination:&nbsp;</code><code class="bash functions">file</code></div>
<div class="line number13 index12 alt2"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">path:&nbsp;</code><code class="bash string">"/var/log/mongodb/mongod.log"</code></div>
<div class="line number14 index13 alt1"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">logAppend:&nbsp;</code><code class="bash functions">true</code></div>
<div class="line number15 index14 alt2">&nbsp;</div>
<div class="line number16 index15 alt1"><code class="bash plain">storage:</code></div>
<div class="line number17 index16 alt2"><code class="bash spaces">&nbsp;&nbsp;&nbsp;</code><code class="bash plain">journal:</code></div>
<div class="line number18 index17 alt1"><code class="bash spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">enabled:&nbsp;</code><code class="bash functions">true</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>processManagement.fork: true&nbsp;以daemon模式启动mongod</p>
<p>net.bindIp:&nbsp;指定IP,逗号分隔,注释掉的情况下,服务启动在0.0.0.0</p>
<p>systemLog.quiet: true&nbsp;日志输出使用quiet模式,只输出critical</p>
<p>storage.dbPath:&nbsp;指定数据的存放位置</p>
<p>replication.replSetName: 副本集的名字</p>
<p>security.authorization: enabled&nbsp;使用认证</p>
<p>security.keyFile:&nbsp;使用keyFile</p>
<p>verbosity:&nbsp;日志开启debug模式,0-5</p>
<p>operationProfiling.slowOpThresholdMs: slowlog设定,默认100</p>
<p>net.http.RESTInterfaceEnabled: rest接口是否有效</p>
<p>net.maxIncomingConnections:&nbsp;最大连接数,默认65536,不能超过系统设置,# ulimit -n</p>
<h1>3. 使用mongoDB</h1>
<p>下面列出一些使用mongoDB的常用命令,其他还有很多,详细参照官方文档</p>
<h3>3.1 连接mongoDB</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># mongo</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>&nbsp;3.2&nbsp;查看数据库</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; show dbs</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.2 切换数据库,没有的时候创建</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; use new2</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.3 查看collection</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; show collections</code></div>
<div class="line number2 index1 alt1"><code class="bash plain">&gt; show tables</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.4 查看当前数据库状态</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.stats()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.5 插入数据</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.insert({</code><code class="bash string">"username"</code><code class="bash plain">:</code><code class="bash string">"test1"</code><code class="bash plain">,</code><code class="bash string">"age"</code><code class="bash plain">:12,</code><code class="bash string">"sex"</code><code class="bash plain">:</code><code class="bash string">"m"</code><code class="bash plain">})</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.6 查找数据</h3>
<p>查找集合中所有数据</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.</code><code class="bash functions">find</code><code class="bash plain">()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>指定条件查找数据</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.</code><code class="bash functions">find</code><code class="bash plain">({age: {$gt: 10}});</code></div>
<div class="line number2 index1 alt1"><code class="bash plain">&gt; db.user.</code><code class="bash functions">find</code><code class="bash plain">({sex:&nbsp;</code><code class="bash plain">/m/</code><code class="bash plain">});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>3.7 统计数据</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.count()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>指定条件统计数据</p>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.count({sex:&nbsp;</code><code class="bash string">"m"</code><code class="bash plain">});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>3.8 删除记录</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.remove({age: 12});</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>&nbsp;</h3>
<h3>3.9 删除collection</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.user.drop()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.10 复制数据库</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.copyDatabase(</code><code class="bash string">"new2"</code><code class="bash plain">,&nbsp;</code><code class="bash string">"new3"</code><code class="bash plain">,&nbsp;</code><code class="bash string">"127.0.0.1"</code><code class="bash plain">);</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.11 删除当前数据库</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.dropDatabase();</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.12 释放空间</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; db.repairDatabase()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>3.13 停止mongodb</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; use admin</code></div>
<div class="line number2 index1 alt1"><code class="bash plain">&gt; db.shutdownServer()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>3.14 帮助文件</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash plain">&gt; help</code></div>
<div class="line number2 index1 alt1"><code class="bash plain">&gt; db.help()</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h1>4. mongoDB状态页面</h1>
<h3>4.1 打开自带的状态页</h3>
<div class="cnblogs_Highlighter sh-gutter">
<div>
<div class="syntaxhighlighterbash">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="bash comments"># vi /etc/mongod.conf</code></div>
<div class="line number2 index1 alt1"><code class="bash plain">net:</code></div>
<div class="line number3 index2 alt2"><code class="bash spaces">&nbsp;&nbsp;</code><code class="bash plain">port: 27017</code></div>
<div class="line number4 index3 alt1"><code class="bash spaces">&nbsp;&nbsp;</code><code class="bash plain">http:</code></div>
<div class="line number5 index4 alt2"><code class="bash spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">enabled:&nbsp;</code><code class="bash functions">true</code></div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3>4.2 浏览器访问</h3>
<p>http://IP:28017/</p>
<p>&nbsp;</p>
<h1>5. 后记</h1>
<p>本文只是初步学习一下mongoDB的安装和使用,副本集,分片等功能,接下来会进行介绍。</p>
<div id="gtx-trans" style="position: absolute; left: 29px; top: 45px">&nbsp;</div>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:landv,转载请注明原文链接:https://www.cnblogs.com/landv/p/12074677.html</p><br><br>
来源:https://www.cnblogs.com/landv/p/12074677.html
頁: [1]
查看完整版本: mongoDB