redis 启动
1 |
redis 登录
1 |
<span class="pln">redis</span><span class="pun">-</span><span class="pln">cli </span><span class="pun">-</span><span class="pln">h host </span><span class="pun">-</span><span class="pln">p port </span><span class="pun">-</span><span class="pln">a password</span> |
redis 关闭
redis> shutdown
redis删除 保存
1 2 3 4 |
<span class="pln">redis </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">6379</span><span class="pun">></span><span class="pln"> SET runoobkey redis OK redis </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">6379</span><span class="pun">></span><span class="pln"> DEL runoobkey </span><span class="pun">(</span><span class="pln">integer</span><span class="pun">)</span> <span class="lit">1</span> |
为了从命令提示符下运行MongoDB服务器,你必须从MongoDB目录的bin目录中执行mongod.exe文件。
1 |
<span class="pln">mongod</span><span class="pun">.</span><span class="pln">exe </span><span class="pun">--</span><span class="pln">dbpath c</span><span class="pun">:</span><span class="pln">\data\db</span> |
MongoDB 更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。
update() 方法
update() 方法用于更新已存在的文档。语法格式如下:
1 2 3 4 5 6 7 8 9 |
<span class="pln">db</span><span class="pun">.</span><span class="pln">collection</span><span class="pun">.</span><span class="pln">update</span><span class="pun">(</span> <span class="str"><query></span><span class="pun">,</span> <span class="str"><update></span><span class="pun">,</span> <span class="pun">{</span><span class="pln"> upsert</span><span class="pun">:</span> <span class="str"><boolean></span><span class="pun">,</span><span class="pln"> multi</span><span class="pun">:</span> <span class="str"><boolean></span><span class="pun">,</span><span class="pln"> writeConcern</span><span class="pun">:</span> <span class="str"><document></span> <span class="pun">}</span> <span class="pun">)</span> |
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
实例
我们在集合 col 中插入如下数据:
1 2 3 4 5 6 7 8 |
<span class="pun">></span><span class="pln">db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">insert</span><span class="pun">({</span><span class="pln"> title</span><span class="pun">:</span> <span class="str">'MongoDB 教程'</span><span class="pun">,</span><span class="pln"> description</span><span class="pun">:</span> <span class="str">'MongoDB 是一个 Nosql 数据库'</span><span class="pun">,</span> <span class="kwd">by</span><span class="pun">:</span> <span class="str">'菜鸟教程'</span><span class="pun">,</span><span class="pln"> url</span><span class="pun">:</span> <span class="str">'http://www.runoob.com'</span><span class="pun">,</span><span class="pln"> tags</span><span class="pun">:</span> <span class="pun">[</span><span class="str">'mongodb'</span><span class="pun">,</span> <span class="str">'database'</span><span class="pun">,</span> <span class="str">'NoSQL'</span><span class="pun">],</span><span class="pln"> likes</span><span class="pun">:</span> <span class="lit">100</span> <span class="pun">})</span> |
接着我们通过 update() 方法来更新标题(title):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="pun">></span><span class="pln">db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">update</span><span class="pun">({</span><span class="str">'title'</span><span class="pun">:</span><span class="str">'MongoDB 教程'</span><span class="pun">},{</span><span class="pln">$set</span><span class="pun">:{</span><span class="str">'title'</span><span class="pun">:</span><span class="str">'MongoDB'</span><span class="pun">}})</span> <span class="typ">WriteResult</span><span class="pun">({</span> <span class="str">"nMatched"</span> <span class="pun">:</span> <span class="lit">1</span><span class="pun">,</span> <span class="str">"nUpserted"</span> <span class="pun">:</span> <span class="lit">0</span><span class="pun">,</span> <span class="str">"nModified"</span> <span class="pun">:</span> <span class="lit">1</span> <span class="pun">})</span> <span class="com"># 输出信息</span> <span class="pun">></span><span class="pln"> db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">find</span><span class="pun">().</span><span class="pln">pretty</span><span class="pun">()</span> <span class="pun">{</span> <span class="str">"_id"</span> <span class="pun">:</span> <span class="typ">ObjectId</span><span class="pun">(</span><span class="str">"56064f89ade2f21f36b03136"</span><span class="pun">),</span> <span class="str">"title"</span> <span class="pun">:</span> <span class="str">"MongoDB"</span><span class="pun">,</span> <span class="str">"description"</span> <span class="pun">:</span> <span class="str">"MongoDB 是一个 Nosql 数据库"</span><span class="pun">,</span> <span class="str">"by"</span> <span class="pun">:</span> <span class="str">"菜鸟教程"</span><span class="pun">,</span> <span class="str">"url"</span> <span class="pun">:</span> <span class="str">"http://www.runoob.com"</span><span class="pun">,</span> <span class="str">"tags"</span> <span class="pun">:</span> <span class="pun">[</span> <span class="str">"mongodb"</span><span class="pun">,</span> <span class="str">"database"</span><span class="pun">,</span> <span class="str">"NoSQL"</span> <span class="pun">],</span> <span class="str">"likes"</span> <span class="pun">:</span> <span class="lit">100</span> <span class="pun">}</span> <span class="pun">></span> |
可以看到标题(title)由原来的 "MongoDB 教程" 更新为了 "MongoDB"。
以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
1 |
<span class="pun">></span><span class="pln">db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">update</span><span class="pun">({</span><span class="str">'title'</span><span class="pun">:</span><span class="str">'MongoDB 教程'</span><span class="pun">},{</span><span class="pln">$set</span><span class="pun">:{</span><span class="str">'title'</span><span class="pun">:</span><span class="str">'MongoDB'</span><span class="pun">}},{</span><span class="pln">multi</span><span class="pun">:</span><span class="kwd">true</span><span class="pun">})</span> |
save() 方法
save() 方法通过传入的文档来替换已有文档。语法格式如下:
1 2 3 4 5 6 |
<span class="pln">db</span><span class="pun">.</span><span class="pln">collection</span><span class="pun">.</span><span class="pln">save</span><span class="pun">(</span> <span class="str"><document></span><span class="pun">,</span> <span class="pun">{</span><span class="pln"> writeConcern</span><span class="pun">:</span> <span class="str"><document></span> <span class="pun">}</span> <span class="pun">)</span> |
参数说明:
- document : 文档数据。
- writeConcern :可选,抛出异常的级别。
实例
以下实例中我们替换了 _id 为 56064f89ade2f21f36b03136 的文档数据:
1 2 3 4 5 6 7 8 9 10 11 12 |
<span class="pun">></span><span class="pln">db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">save</span><span class="pun">({</span> <span class="str">"_id"</span> <span class="pun">:</span> <span class="typ">ObjectId</span><span class="pun">(</span><span class="str">"56064f89ade2f21f36b03136"</span><span class="pun">),</span> <span class="str">"title"</span> <span class="pun">:</span> <span class="str">"MongoDB"</span><span class="pun">,</span> <span class="str">"description"</span> <span class="pun">:</span> <span class="str">"MongoDB 是一个 Nosql 数据库"</span><span class="pun">,</span> <span class="str">"by"</span> <span class="pun">:</span> <span class="str">"Runoob"</span><span class="pun">,</span> <span class="str">"url"</span> <span class="pun">:</span> <span class="str">"http://www.runoob.com"</span><span class="pun">,</span> <span class="str">"tags"</span> <span class="pun">:</span> <span class="pun">[</span> <span class="str">"mongodb"</span><span class="pun">,</span> <span class="str">"NoSQL"</span> <span class="pun">],</span> <span class="str">"likes"</span> <span class="pun">:</span> <span class="lit">110</span> <span class="pun">})</span> |
替换成功后,我们可以通过 find() 命令来查看替换后的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="pun">></span><span class="pln">db</span><span class="pun">.</span><span class="pln">col</span><span class="pun">.</span><span class="pln">find</span><span class="pun">().</span><span class="pln">pretty</span><span class="pun">()</span> <span class="pun">{</span> <span class="str">"_id"</span> <span class="pun">:</span> <span class="typ">ObjectId</span><span class="pun">(</span><span class="str">"56064f89ade2f21f36b03136"</span><span class="pun">),</span> <span class="str">"title"</span> <span class="pun">:</span> <span class="str">"MongoDB"</span><span class="pun">,</span> <span class="str">"description"</span> <span class="pun">:</span> <span class="str">"MongoDB 是一个 Nosql 数据库"</span><span class="pun">,</span> <span class="str">"by"</span> <span class="pun">:</span> <span class="str">"Runoob"</span><span class="pun">,</span> <span class="str">"url"</span> <span class="pun">:</span> <span class="str">"http://www.runoob.com"</span><span class="pun">,</span> <span class="str">"tags"</span> <span class="pun">:</span> <span class="pun">[</span> <span class="str">"mongodb"</span><span class="pun">,</span> <span class="str">"NoSQL"</span> <span class="pun">],</span> <span class="str">"likes"</span> <span class="pun">:</span> <span class="lit">110</span> <span class="pun">}</span> <span class="pun">></span> |
更多实例
只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
