Mac下MongoDB配置与操作
<p>1.环境配置</p><p>Xcode安装</p>
<p>2.下载安装包</p>
<p>官网地址是:MongoDB Download Center | MongoDB</p>
<div class="image-package">3.解压文件, 将文件放置/usr/local</div>
<div class="image-package">4.配置环境变量</div>
<div class="image-package">
<div class="cnblogs_code">
<pre>open -<span style="color: rgba(0, 0, 0, 1)">e .bash_profile
export PATH</span>=${PATH}:/usr/local/MongoDB/bin<br><br>source .bash_profile</pre>
</div>
<p>5.验证是否安装完毕</p>
<div class="cnblogs_code">
<pre>mongod -version</pre>
</div>
<div class="cnblogs_code">
<pre>db version v4.<span style="color: rgba(128, 0, 128, 1)">0.9</span><span style="color: rgba(0, 0, 0, 1)">
git version: f*********************62909765
allocator: system
modules: none
build environment:
distarch: x86_64
target_arch: x86_64</span></pre>
</div>
<p>6.创建存储文件目录</p>
<div class="cnblogs_code">
<pre>sudo mkdir -p /data/db</pre>
</div>
<div class="cnblogs_code">
<pre>sudo chmod +X /data/db-- 增加可写权限</pre>
</div>
<div class="cnblogs_code">
<pre>sudo chown username /data/db-- 授权给username</pre>
</div>
<p>7.启动mongodb</p>
<div class="cnblogs_code">
<pre>mongod</pre>
</div>
<p>显示等候客户端连接的界面就代表启动成功了,如果不成功就检查下 /data/db 文件夹位置对不对,不行就重新删掉建一个, 打开浏览器,输入 localhost:27017 ,会出现这样一行文字。</p>
<p>8.打开命令行</p>
<div class="cnblogs_code">
<pre>mongo</pre>
</div>
<p>可以对数据库进行操作,要停止MongoDB的时候一定要正确的退出,不然下次再次连接数据库会出现问题,使用下面的两行代码可以完成这一操作。</p>
<p>9.创建数据库 </p>
<div class="cnblogs_code">
<pre>use db</pre>
</div>
<div class="cnblogs_code">
<pre>show dbs</pre>
</div>
<p>10.创建集合Collection</p>
<div class="cnblogs_code">
<pre>db.createCollection("testCollection")</pre>
</div>
<p>11.插入数据</p>
<div class="cnblogs_code">
<pre>db.testCollection.insert({<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">菜鸟教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>})</pre>
</div>
<p>12.查看集合Collection</p>
<div class="cnblogs_code">
<pre>show collections</pre>
</div>
<p>13.删除集合</p>
<div class="cnblogs_code">
<pre>db.collection.drop()</pre>
</div>
<p>14.集合插入文档</p>
<div class="cnblogs_code">
<pre>db.testCollection.insert({title: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 教程</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
description: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 是一个 Nosql 数据库</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
by: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">菜鸟教程</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
url: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">http://www.runoob.com</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
tags: [</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">mongodb</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">database</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">NoSQL</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">],
likes: </span><span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">
})</span></pre>
</div>
<p>15.查询文档</p>
<p>(1) 查询全部数据</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">db.collection.find(query, projection)
-- query :可选,使用查询操作符指定查询条件
-- projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
db.testCollection.find().pretty() </span> <br>-- pretty() 方法以格式化的方式来显示所有文档。 </pre>
</div>
<p>(2)MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。 </p>
<div class="cnblogs_code">
<pre>db.testCollection.find({<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">by</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">菜鸟教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>}).pretty()</pre>
</div>
<p>(3) OR 条件语句使用了关键字 <strong>$or</strong>,语法格式如下:</p>
<div class="cnblogs_code">
<pre>db.testCollection.find({<strong>$or</strong>:[{<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">by</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">菜鸟教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>},{<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>}]}).pretty()</pre>
</div>
<p>(4)AND 和 OR 联合使用</p>
<div class="cnblogs_code">
<pre>常规 SQL 语句为: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">where likes>50 AND (by = </span><span style="color: rgba(128, 0, 0, 1)">'</span>菜鸟教程<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)"> OR title = </span><span style="color: rgba(128, 0, 0, 1)">'</span>MongoDB 教程<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">)</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
db.testCollection.find({</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">likes</span><span style="color: rgba(128, 0, 0, 1)">"</span>: {$gt:<span style="color: rgba(128, 0, 128, 1)">50</span>}, $or: [{<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">by</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">菜鸟教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>},{<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 教程</span><span style="color: rgba(128, 0, 0, 1)">"</span>}]}).pretty()</pre>
</div>
<p>16.删除文档</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">db.collection.remove(
</span><query><span style="color: rgba(0, 0, 0, 1)">,
{
justOne: </span><boolean><span style="color: rgba(0, 0, 0, 1)">,
writeConcern: </span><document><span style="color: rgba(0, 0, 0, 1)">
}
)</span></pre>
</div>
<p><strong>参数说明:</strong></p>
<ul>
<li><strong>query </strong>:(可选)删除的文档的条件。</li>
<li><strong>justOne </strong>: (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。</li>
<li><strong>writeConcern </strong>:(可选)抛出异常的级别</li>
</ul>
<p>(1)特定删除</p>
<div class="cnblogs_code">
<pre>db.testCollection.remove({<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">MongoDB 教程</span><span style="color: rgba(128, 0, 0, 1)">'</span>})</pre>
</div>
<p>(2)删除全部</p>
<div class="cnblogs_code">
<pre>db.col.remove({})</pre>
</div>
<p> </p>
<p> <img src="https://img2020.cnblogs.com/blog/834385/202105/834385-20210516184904951-1605704073.png"></p>
<p> </p>
<p> </p>
</div>
</div>
<div id="MySignature" role="contentinfo">
本文版权归作者所有,转载请注明出处http://www.cnblogs.com/iloverain/.未经作者同意必须保留此段声明,否则保留追究法律责任的权利.<br><br>
来源:https://www.cnblogs.com/iloverain/p/10805723.html
頁:
[1]