﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-西瓜地儿-随笔分类-MongoDb</title><link>http://www.blogjava.net/ashutc/category/47416.html</link><description>沈阳求职（java3年以上经验）！ashutc@126.com</description><language>zh-cn</language><lastBuildDate>Wed, 20 Apr 2011 11:15:46 GMT</lastBuildDate><pubDate>Wed, 20 Apr 2011 11:15:46 GMT</pubDate><ttl>60</ttl><item><title>mongodb 嵌套查询 for java</title><link>http://www.blogjava.net/ashutc/archive/2011/02/18/344602.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Fri, 18 Feb 2011 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2011/02/18/344602.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/344602.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2011/02/18/344602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/344602.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/344602.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;DBCollection&nbsp;col&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;db.getCollection(name);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBObject&nbsp;query&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BasicDBObject(</span><span style="color: #000000;">"</span><span style="color: #000000;">$in</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Object[]&nbsp;{&nbsp;ids&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBCursor&nbsp;ite&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;col.find(query);</span></div>
<img src ="http://www.blogjava.net/ashutc/aggbug/344602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2011-02-18 11:07 <a href="http://www.blogjava.net/ashutc/archive/2011/02/18/344602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从MySQL到MongoDB简易对照表</title><link>http://www.blogjava.net/ashutc/archive/2011/02/18/344600.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Fri, 18 Feb 2011 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2011/02/18/344600.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/344600.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2011/02/18/344600.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/344600.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/344600.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">查询：<br />
MySQL:<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user<br />
Mongo:<br />
db.user.find()<br />
<br />
MySQL:<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8217;starlee&#8217;<br />
Mongo:<br />
db.user.find({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;})<br />
<br />
插入：<br />
MySQL:<br />
INSERT&nbsp;INOT&nbsp;user&nbsp;(`name`,&nbsp;`age`)&nbsp;values&nbsp;(&#8217;starlee&#8217;,</span><span style="color: #000000;">25</span><span style="color: #000000;">)<br />
Mongo:<br />
db.user.insert({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;,&nbsp;&#8216;age&#8217;&nbsp;:&nbsp;</span><span style="color: #000000;">25</span><span style="color: #000000;">})<br />
<br />
如果你想在MySQL里添加一个字段，你必须：<br />
ALTER&nbsp;TABLE&nbsp;user&#8230;.<br />
但在MongoDB里你只需要：<br />
db.user.insert({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;,&nbsp;&#8216;age&#8217;&nbsp;:&nbsp;</span><span style="color: #000000;">25</span><span style="color: #000000;">,&nbsp;&#8216;email&#8217;&nbsp;:&nbsp;&#8217;starlee@starlee.com&#8217;})<br />
<br />
删除：<br />
MySQL:<br />
DELETE&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user<br />
Mongo:<br />
db.user.remove({})<br />
<br />
MySQL:<br />
DELETE&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;age&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">30</span><span style="color: #000000;"><br />
Mongo:<br />
db.user.remove({&#8216;age&#8217;&nbsp;:&nbsp;{$lt&nbsp;:&nbsp;</span><span style="color: #000000;">30</span><span style="color: #000000;">}})<br />
<br />
$gt&nbsp;:&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;;&nbsp;$gte&nbsp;:&nbsp;</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">&nbsp;;&nbsp;$lt&nbsp;:&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;;&nbsp;$lte&nbsp;:&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;;&nbsp;$ne&nbsp;:&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;"><br />
<br />
更新:<br />
<br />
MySQL:<br />
UPDATE&nbsp;user&nbsp;SET&nbsp;`age`&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">36</span><span style="color: #000000;">&nbsp;WHERE&nbsp;`name`&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8217;starlee&#8217;<br />
Mongo:<br />
db.user.update({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;},&nbsp;{$set&nbsp;:&nbsp;{&#8216;age&#8217;&nbsp;:&nbsp;</span><span style="color: #000000;">36</span><span style="color: #000000;">}})<br />
<br />
MySQL:<br />
UPDATE&nbsp;user&nbsp;SET&nbsp;`age`&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;`age`&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;WHERE&nbsp;`name`&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8217;starlee&#8217;<br />
Mongo:<br />
db.user.update({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;},&nbsp;{$inc&nbsp;:&nbsp;{&#8216;age&#8217;&nbsp;:&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">}})<br />
<br />
MySQL:<br />
SELECT&nbsp;COUNT(</span><span style="color: #000000;">*</span><span style="color: #000000;">)&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;`name`&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&#8217;starlee&#8217;<br />
Mongo:<br />
db.user.find({&#8216;name&#8217;&nbsp;:&nbsp;&#8217;starlee&#8217;}).count()<br />
<br />
MySQL:<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user&nbsp;limit&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">,</span><span style="color: #000000;">20</span><span style="color: #000000;"><br />
Mongo:<br />
db.user.find().skip(</span><span style="color: #000000;">10</span><span style="color: #000000;">).limit(</span><span style="color: #000000;">20</span><span style="color: #000000;">)<br />
<br />
MySQL:<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;`age`&nbsp;IN&nbsp;(</span><span style="color: #000000;">25</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">35</span><span style="color: #000000;">,</span><span style="color: #000000;">45</span><span style="color: #000000;">)<br />
Mongo:<br />
db.user.find({&#8216;age&#8217;&nbsp;:&nbsp;{$in&nbsp;:&nbsp;[</span><span style="color: #000000;">25</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">35</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">45</span><span style="color: #000000;">]}})<br />
<br />
MySQL:<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;user&nbsp;ORDER&nbsp;BY&nbsp;age&nbsp;DESC<br />
Mongo:<br />
db.user.find().sort({&#8216;age&#8217;&nbsp;:&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
<br />
MySQL:<br />
SELECT&nbsp;DISTINCT(name)&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;age&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;"><br />
Mongo:<br />
db.user.distinct(&#8216;name&#8217;,&nbsp;{&#8216;age&#8217;:&nbsp;{$lt&nbsp;:&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">}})<br />
<br />
MySQL:<br />
SELECT&nbsp;name,&nbsp;sum(marks)&nbsp;FROM&nbsp;user&nbsp;GROUP&nbsp;BY&nbsp;name<br />
Mongo:<br />
db.user.group({<br />
key&nbsp;:&nbsp;{&#8216;name&#8217;&nbsp;:&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">},<br />
cond:&nbsp;{&#8216;name&#8217;&nbsp;:&nbsp;&#8216;foo&#8217;},<br />
reduce:&nbsp;function(obj,prev)&nbsp;{&nbsp;prev.msum&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;obj.marks;&nbsp;},<br />
initial:&nbsp;{msum&nbsp;:&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">}<br />
});<br />
<br />
MySQL:<br />
SELECT&nbsp;name&nbsp;FROM&nbsp;user&nbsp;WHERE&nbsp;age&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;"><br />
Mongo:<br />
db.user.find(&#8216;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.age&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">&#8242;,&nbsp;{name&nbsp;:&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
<br />
发现很多人在搜MongoDB循环插入数据，下面把MongoDB循环插入数据的方法添加在下面：<br />
<br />
</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(var&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">100</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)db.test.insert({uid:i,uname:&#8217;nosqlfan&#8217;</span><span style="color: #000000;">+</span><span style="color: #000000;">i});<br />
<br />
上面一次性插入一百条数据，大概结构如下：<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6b8&#8243;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">55</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan55&#8243;&nbsp;}<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6b9&#8243;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">56</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan56&#8243;&nbsp;}<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6ba&#8221;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">57</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan57&#8243;&nbsp;}<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6bb&#8221;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">58</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan58&#8243;&nbsp;}<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6bc&#8221;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">59</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan59&#8243;&nbsp;}<br />
{&nbsp;&#8220;_id&#8221;&nbsp;:&nbsp;ObjectId(&#8220;4c876e519e86023a30dde6bd&#8221;),&nbsp;&#8220;uid&#8221;&nbsp;:&nbsp;</span><span style="color: #000000;">60</span><span style="color: #000000;">,&nbsp;&#8220;uname&#8221;&nbsp;:&nbsp;&#8220;nosqlfan60&#8243;&nbsp;}</span></div>
简易对照表<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">SQL&nbsp;Statement&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mongo&nbsp;Query&nbsp;Language&nbsp;Statement&nbsp;<br />
CREATE&nbsp;TABLE&nbsp;USERS&nbsp;(a&nbsp;Number,&nbsp;b&nbsp;Number)&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; implicit;&nbsp;can&nbsp;be&nbsp;done&nbsp;explicitly&nbsp;<br />
<br />
INSERT&nbsp;INTO&nbsp;USERS&nbsp;VALUES(</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db.users.insert({a:</span><span style="color: #000000;">1</span><span style="color: #000000;">,b:</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
SELECT&nbsp;a,b&nbsp;FROM&nbsp;users&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({},&nbsp;{a:</span><span style="color: #000000;">1</span><span style="color: #000000;">,b:</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #000000;">db.users.find()<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">=</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({age:</span><span style="color: #000000;">33</span><span style="color: #000000;">})<br />
SELECT&nbsp;a,b&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">=</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({age:</span><span style="color: #000000;">33</span><span style="color: #000000;">},&nbsp;{a:</span><span style="color: #000000;">1</span><span style="color: #000000;">,b:</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">=</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;ORDER&nbsp;BY&nbsp;name&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({age:</span><span style="color: #000000;">33</span><span style="color: #000000;">}).sort({name:</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">age</span><span style="color: #000000;">'</span><span style="color: #000000;">:{$gt:</span><span style="color: #000000;">33</span><span style="color: #000000;">}})})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">age</span><span style="color: #000000;">'</span><span style="color: #000000;">:{$lt:</span><span style="color: #000000;">33</span><span style="color: #000000;">}})})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;name&nbsp;LIKE&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">%Joe%</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({name:</span><span style="color: #000000;">/</span><span style="color: #000000;">Joe</span><span style="color: #000000;">/</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;name&nbsp;LIKE&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Joe%</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({name:</span><span style="color: #000000;">/^</span><span style="color: #000000;">Joe</span><span style="color: #000000;">/</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;age</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">33</span><span style="color: #000000;">&nbsp;AND&nbsp;age</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">40</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">age</span><span style="color: #000000;">'</span><span style="color: #000000;">:{$gt:</span><span style="color: #000000;">33</span><span style="color: #000000;">,$lte:</span><span style="color: #000000;">40</span><span style="color: #000000;">}})})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;ORDER&nbsp;BY&nbsp;name&nbsp;DESC&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find().sort({name:</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
CREATE&nbsp;INDEX&nbsp;myindexname&nbsp;ON&nbsp;users(name)&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">&nbsp; db.users.ensureIndex({name:</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
CREATE&nbsp;INDEX&nbsp;myindexname&nbsp;ON&nbsp;users(name,ts&nbsp;DESC)&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">&nbsp; db.users.ensureIndex({name:</span><span style="color: #000000;">1</span><span style="color: #000000;">,ts:</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;and&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({a:</span><span style="color: #000000;">1</span><span style="color: #000000;">,b:</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">})<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;LIMIT&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">&nbsp;SKIP&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find().limit(</span><span style="color: #000000;">10</span><span style="color: #000000;">).skip(</span><span style="color: #000000;">20</span><span style="color: #000000;">)<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;or&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find(&nbsp;{&nbsp;$or&nbsp;:&nbsp;[&nbsp;{&nbsp;a&nbsp;:&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;}&nbsp;,&nbsp;{&nbsp;b&nbsp;:&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;}&nbsp;]&nbsp;}&nbsp;)<br />
SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;LIMIT&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #000000;">db.users.findOne()<br />
EXPLAIN&nbsp;SELECT&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;z</span><span style="color: #000000;">=</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({z:</span><span style="color: #000000;">3</span><span style="color: #000000;">}).explain()<br />
SELECT&nbsp;DISTINCT&nbsp;last_name&nbsp;FROM&nbsp;users&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.distinct(</span><span style="color: #000000;">'</span><span style="color: #000000;">last_name</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
SELECT&nbsp;COUNT(</span><span style="color: #000000;">*</span><span style="color: #000000;">y) FROM&nbsp;users&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.count()<br />
SELECT&nbsp;COUNT(</span><span style="color: #000000;">*</span><span style="color: #000000;">y) FROM&nbsp;users&nbsp;where&nbsp;AGE&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">30</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({age:&nbsp;{</span><span style="color: #000000;">'</span><span style="color: #000000;">$gt</span><span style="color: #000000;">'</span><span style="color: #000000;">:&nbsp;</span><span style="color: #000000;">30</span><span style="color: #000000;">}}).count()<br />
SELECT&nbsp;COUNT(AGE)&nbsp;from&nbsp;users&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: #000000;">db.users.find({age:&nbsp;{</span><span style="color: #000000;">'</span><span style="color: #000000;">$exists</span><span style="color: #000000;">'</span><span style="color: #000000;">:&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">}}).count()<br />
UPDATE&nbsp;users&nbsp;SET&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;WHERE&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.users.update({b:</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">},&nbsp;{$set:{a:</span><span style="color: #000000;">1</span><span style="color: #000000;">}},&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)<br />
UPDATE&nbsp;users&nbsp;SET&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">a</span><span style="color: #000000;">+</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;WHERE&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">&nbsp; db.users.update({b:</span><span style="color: #000000;">'</span><span style="color: #000000;">q</span><span style="color: #000000;">'</span><span style="color: #000000;">},&nbsp;{$inc:{a:</span><span style="color: #000000;">2</span><span style="color: #000000;">}},&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)<br />
DELETE&nbsp;FROM&nbsp;users&nbsp;WHERE&nbsp;z</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">abc</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </span><span style="color: #000000;">db.users.remove({z:</span><span style="color: #000000;">'</span><span style="color: #000000;">abc</span><span style="color: #000000;">'</span><span style="color: #000000;">});<br />
<br />
</span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/344600.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2011-02-18 10:28 <a href="http://www.blogjava.net/ashutc/archive/2011/02/18/344600.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MongoDB+java+spirng+morphia</title><link>http://www.blogjava.net/ashutc/archive/2011/01/12/342819.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Wed, 12 Jan 2011 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2011/01/12/342819.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/342819.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2011/01/12/342819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/342819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/342819.html</trackback:ping><description><![CDATA[<span style="color: #000000;">Hotle.java</span><br />
<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;test_yu.morphiaSpring;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.annotations.Embedded;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.annotations.Entity;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.annotations.Id;<br />
</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
&nbsp;*&nbsp;<br />
&nbsp;*&nbsp;</span><span style="color: #808080;">@author</span><span style="color: #008000;">&nbsp;yu<br />
&nbsp;*&nbsp;创建了两个领域Hotel,Address,前者为实体存在,有自己的生命周期,后者则为内嵌在实体之中,没有独立的生命周期<br />
&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
@Entity<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Hotle&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Id<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;id;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;stars;<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Embedded<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Address&nbsp;address;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;getId()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setId(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;id)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.id&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;id;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getName()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setName(String&nbsp;name)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;getStars()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;stars;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setStars(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;stars)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.stars&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;stars;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Address&nbsp;getAddress()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;address;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setAddress(Address&nbsp;address)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.address&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;address;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}<br />
<br />
@Embedded<br />
</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Address&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;street;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;postCode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;country;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getStreet()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;street;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setStreet(String&nbsp;street)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.street&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;street;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getCity()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setCity(String&nbsp;city)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.city&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;city;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getPostCode()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;postCode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setPostCode(String&nbsp;postCode)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.postCode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;postCode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getCountry()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;country;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setCountry(String&nbsp;country)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.country&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;country;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
}</span></div>
<br />
MorphiaBean.java<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;test_yu.morphiaSpring;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.Datastore;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.Morphia;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.mongodb.Mongo;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MorphiaBean&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;Morphia&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;Mongo&nbsp;mongo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;dbName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Datastore&nbsp;getDatastore(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.mongo</span><span style="color: #000000;">==</span><span style="color: #0000ff;">null</span><span style="color: #000000;">||</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.dbName</span><span style="color: #000000;">==</span><span style="color: #0000ff;">null</span><span style="color: #000000;">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;createDatastore(mongo,&nbsp;dbName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;Mongo&nbsp;getMongo()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;mongo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setMongo(Mongo&nbsp;mongo)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.mongo&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;mongo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;getDbName()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;dbName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setDbName(String&nbsp;dbName)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.dbName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;dbName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
</span></div>
<br />
<span style="color: #000000;">MorphiaTest.java</span><br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;test_yu.morphiaSpring;<br />
<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.net.UnknownHostException;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.springframework.context.ApplicationContext;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.springframework.context.support.ClassPathXmlApplicationContext;<br />
<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.google.code.morphia.Datastore;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;MorphiaTest&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;UnknownHostException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ApplicationContext&nbsp;context&nbsp;</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ClassPathXmlApplicationContext(</span><span style="color: #000000;">"</span><span style="color: #000000;">applicationContext.xml</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MorphiaBean&nbsp;morphiaBean</span><span style="color: #000000;">=</span><span style="color: #000000;">(MorphiaBean)&nbsp;context.getBean(</span><span style="color: #000000;">"</span><span style="color: #000000;">morphia</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datastore&nbsp;ds</span><span style="color: #000000;">=</span><span style="color: #000000;">morphiaBean.getDatastore();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">向数据库中添加多条记录</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addManyArticles(ds);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printLine();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Article&nbsp;single&nbsp;=&nbsp;ds.get(Article.class,9);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("single&nbsp;=&nbsp;"&nbsp;+&nbsp;single);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printLine();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">查询文章大于5，编辑id大于106的文章<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Article&gt;&nbsp;articles=&nbsp;ds.find(Article.class,"id&nbsp;&gt;",5).filter("editor.id&nbsp;&gt;",106).asList();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayArticleList(articles);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printLine();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">更新id=123的文章标题和编辑名称<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.update(ds.createQuery(Article.class).where("id&nbsp;=&nbsp;123"),ds.createUpdateOperations(Article.class).set("title","修改后的标题").set("editor.name","yumeng"));<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printLine();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">所有id号大于5的文章的编辑id号+1<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.update(ds.createQuery(Article.class).where("id&nbsp;&gt;&nbsp;5"),ds.createUpdateOperations(Article.class).inc("editor.id"));<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printLine();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">向id为123的文章的关键词列表中新增一个关键词<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.update(ds.createQuery(Article.class).filter("id",123),ds.createUpdateOperations(Article.class).add("keywords",&nbsp;"宏基"));<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">批量添加关键词<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;String&nbsp;&gt;&nbsp;keys&nbsp;=&nbsp;new&nbsp;ArrayList&lt;String&gt;();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keys.add("苍天");<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keys.add("大地");<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.update(ds.createQuery(Article.class).filter("id",123),ds.createUpdateOperations(Article.class).addAll("keywords",keys,false));<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">列出所有数据<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&lt;Article&gt;&nbsp;query&nbsp;=&nbsp;ds.find(Article.class);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;displayQueryRusult(query);</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;void&nbsp;printLine()&nbsp;{<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("-------------------------------------");<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;void&nbsp;displayArticleList(List&lt;Article&gt;&nbsp;articles)&nbsp;{<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Article&nbsp;article&nbsp;:&nbsp;articles)&nbsp;{<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("article&nbsp;=&nbsp;"&nbsp;+&nbsp;article);<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;"><br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;void&nbsp;displayQueryRusult(Query&lt;Article&gt;&nbsp;query)&nbsp;{<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator&lt;Article&gt;&nbsp;it&nbsp;=&nbsp;query.fetch().iterator();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(it.hasNext())&nbsp;{<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Article&nbsp;article&nbsp;=&nbsp;&nbsp;it.next();<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("article.toString()&nbsp;=&nbsp;"&nbsp;+&nbsp;article.toString());<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;addManyArticles(Datastore&nbsp;ds)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hotle&nbsp;hotle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Hotle();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address&nbsp;address</span><span style="color: #000000;">=</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Address();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address.setCity(</span><span style="color: #000000;">"</span><span style="color: #000000;">北京</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address.setCountry(</span><span style="color: #000000;">"</span><span style="color: #000000;">中国</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address.setPostCode(</span><span style="color: #000000;">"</span><span style="color: #000000;">100080</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address.setStreet(</span><span style="color: #000000;">"</span><span style="color: #000000;">海淀中街</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hotle.setId(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hotle.setName(</span><span style="color: #000000;">"</span><span style="color: #000000;">悦来酒店</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hotle.setStars(</span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hotle.setAddress(address);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ds.save(hotle);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</span></div>
<br />
<br />
applicationContext.xml<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&lt;?</span><span style="color: #000000;">xml&nbsp;version</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">1.0</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;encoding</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">"</span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">beans&nbsp;xmlns</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.springframework.org/schema/beans</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.w3.org/2001/XMLSchema-instance</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;xmlns:p</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.springframework.org/schema/p</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-3.0.xsd</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">bean&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">propertyConfigurer</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">locations</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">list</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;/</span><span style="color: #000000;">config.properties</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">value</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">list</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">property</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">bean</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">bean&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">mongo</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">com.mongodb.Mongo</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">constructor</span><span style="color: #000000;">-</span><span style="color: #000000;">arg&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">String</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">219.239.88.200</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">constructor</span><span style="color: #000000;">-</span><span style="color: #000000;">arg</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">constructor</span><span style="color: #000000;">-</span><span style="color: #000000;">arg&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">int</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">27017</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">constructor</span><span style="color: #000000;">-</span><span style="color: #000000;">arg</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">bean</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">bean&nbsp;id</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">morphia</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">test_yu.morphiaSpring.MorphiaBean</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">mongo</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;ref</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">mongo</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">property</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">property&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">dbName</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;value</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">address</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;&lt;/</span><span style="color: #000000;">property</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">bean</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">beans</span><span style="color: #000000;">&gt;</span></div>
<br />
<br />
需要几个支持包<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/342819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2011-01-12 10:09 <a href="http://www.blogjava.net/ashutc/archive/2011/01/12/342819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MongoDB 正则表达式 regex 查询</title><link>http://www.blogjava.net/ashutc/archive/2010/12/21/341264.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Tue, 21 Dec 2010 09:48:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2010/12/21/341264.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/341264.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2010/12/21/341264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/341264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/341264.html</trackback:ping><description><![CDATA[<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">条件查询&nbsp;&nbsp;模糊查询</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;john&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Pattern.compile(</span><span style="color: #000000;">"</span><span style="color: #000000;">586190</span><span style="color: #000000;">"</span><span style="color: #000000;">,Pattern.CASE_INSENSITIVE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BasicDBObject&nbsp;query&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;BasicDBObject(</span><span style="color: #000000;">"</span><span style="color: #000000;">url</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;john);&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;finds&nbsp;all&nbsp;people&nbsp;with&nbsp;"name"&nbsp;matching&nbsp;/joh?n/i&nbsp;DBCursor&nbsp;cursor&nbsp;=&nbsp;collection.find(query);</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBCursor&nbsp;ite&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;col.find(query);</span></div>
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/341264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2010-12-21 17:48 <a href="http://www.blogjava.net/ashutc/archive/2010/12/21/341264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mongodb查询的语法</title><link>http://www.blogjava.net/ashutc/archive/2010/12/21/341263.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Tue, 21 Dec 2010 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2010/12/21/341263.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/341263.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2010/12/21/341263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/341263.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/341263.html</trackback:ping><description><![CDATA[<br />
<br />
<a target="_blank" href="http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ConditionalOperators%3A%3C%2C%3C%3D%2C%3E%2C%3E%3D">http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ConditionalOperators%3A%3C%2C%3C%3D%2C%3E%2C%3E%3D</a><br />
<br />
1 ) . 大于，小于，大于或等于，小于或等于<br />
<br />
$gt:大于<br />
$lt:小于<br />
$gte:大于或等于<br />
$lte:小于或等于<br />
<br />
例子：<br />
<br />
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.collection.find({ <span class="code-quote">"field"</span> : { $gt: value } } );   <span class="code-comment">// greater than  : field &gt; value<br />
</span>db.collection.find({ <span class="code-quote">"field"</span> : { $lt: value } } );   <span class="code-comment">// less than  :  field &lt; value<br />
</span>db.collection.find({ <span class="code-quote">"field"</span> : { $gte: value } } );  <span class="code-comment">// greater than or equal to : field &gt;= value<br />
</span>db.collection.find({ <span class="code-quote">"field"</span> : { $lte: value } } );  <span class="code-comment">// less than or equal to : field &lt;= value</span></pre>
</div>
</div>
<p>如查询j大于3,小于4:</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find({j : {$lt: 3}});<br />
db.things.find({j : {$gte: 4}});</pre>
</div>
</div>
<p>也可以合并在一条语句内:</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.collection.find({ <span class="code-quote">"field"</span> : { $gt: value1, $lt: value2 } } );    <span class="code-comment">// value1 &lt; field &lt; value</span></pre>
</div>
</div>
<p> </p>
<p> </p>
<p>2) 不等于 $ne</p>
<p>例子：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { x : { $ne : 3 } } );</pre>
</div>
</div>
<p> </p>
<p> </p>
<br />
<br />
3) in 和 not in ($in $nin)<br />
<br />
语法：<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.collection.find( { <span class="code-quote">"field"</span> : { $in : array } } );</pre>
</div>
</div>
<p>例子：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find({j:{$in: [2,4,6]}});</pre>
</div>
</div>
<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find({j:{$nin: [2,4,6]}});</pre>
</div>
</div>
<br />
<br />
<br />
4) 取模运算$mod<br />
<br />
如下面的运算：<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( <span class="code-quote">"<span class="code-keyword">this</span>.a % 10 == 1"</span>)</pre>
</div>
</div>
<p>可用$mod代替：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a : { $mod : [ 10 , 1 ] } } )</pre>
</div>
</div>
<br />
<br />
<br />
5)&nbsp; $all<br />
<br />
$all和$in类似，但是他需要匹配条件内所有的值：<br />
<br />
如有一个对象：<br />
<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">{ a: [ 1, 2, 3 ] }</pre>
</div>
</div>
<p>下面这个条件是可以匹配的：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a: { $all: [ 2, 3 ] } } );</pre>
</div>
</div>
<p>但是下面这个条件就不行了：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a: { $all: [ 2, 3, 4 ] } } );</pre>
</div>
</div>
<br />
<br />
6)&nbsp; $size<br />
<br />
$size是匹配数组内的元素数量的，如有一个对象：{<tt>a:["foo"]</tt>}，他只有一个元素：<br />
<br />
下面的语句就可以匹配：
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a : { $size: 1 } } );</pre>
</div>
</div>
<p>官网上说不能用来匹配一个范围内的元素，如果想找$size&lt;5之类的，他们建议创建一个字段来保存元素的数量。</p>
<p>You cannot use <tt>$size</tt> to find a range of sizes (for example:  arrays with more than 1 element).  If you need to query for a range,  create an extra <tt>size</tt> field that you increment when you add  elements.</p>
<p> </p>
<p>7）$exists</p>
<p>$exists用来判断一个元素是否存在：</p>
<p>如：</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a : { $exists : <span class="code-keyword">true</span> } } ); <span class="code-comment">// <span class="code-keyword">如果存在</span></span><span class="code-comment"><span class="code-keyword">元素</span></span><span class="code-comment"><span class="code-keyword">a,就返回</span><br />
</span>db.things.find( { a : { $exists : <span class="code-keyword">false</span> } } ); <span class="code-comment">// <span class="code-keyword">如果不存在元素a，就返回</span></span></pre>
</div>
</div>
<br />
<br />
8)&nbsp; $type<br />
<br />
<p><tt>$type</tt> 基于 <a href="http://bsonspec.org/">bson</a> type来匹配一个元素的类型，像是按照类型ID来匹配，不过我没找到bson类型和id对照表。</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a : { $type : 2 } } ); <span class="code-comment">// matches <span class="code-keyword">if</span> a is a string<br />
</span>db.things.find( { a : { $type : 16 } } ); <span class="code-comment">// matches <span class="code-keyword">if</span> a is an <span class="code-object">int</span></span></pre>
</div>
</div>
<br />
9）正则表达式<br />
<br />
mongo支持正则表达式，如：<br />
<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.customers.find( { name : /acme.*corp/i } ); // 后面的i的意思是区分大小写</pre>
</div>
</div>
<br />
<br />
10)&nbsp; 查询数据内的值<br />
<br />
下面的查询是查询colors内red的记录，如果colors元素是一个数据,数据库将遍历这个数组的元素来查询。
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { colors : <span class="code-quote">"red"</span> } );</pre>
</div>
</div>
<br />
<br />
11) $elemMatch<br />
<br />
如果对象有一个元素是数组，那么$elemMatch可以匹配内数组内的元素：<br />
<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">&gt; t.find( { x : { $elemMatch : { a : 1, b : { $gt : 1 } } } } )&nbsp;<br />
{ <span class="code-quote">"_id"</span> : ObjectId(<span class="code-quote">"4b5783300334000000000aa9"</span>),  <span class="code-quote"><br />
"x"</span> : [ { <span class="code-quote">"a"</span> : 1, <span class="code-quote">"b"</span> : 3 }, 7, { <span class="code-quote">"b"</span> : 99 }, { <span class="code-quote">"a"</span> : 11 } ]<br />
}</pre>
</div>
</div>
<pre class="code-java">$elemMatch : { a : 1, b : { $gt : 1 } } 所有的条件都要匹配上才行。</pre>
<p>注意，上面的语句和下面是不一样的。</p>
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">&gt; t.find( { <span class="code-quote">"x.a"</span> : 1, <span class="code-quote">"x.b"</span> : { $gt : 1 } } )</pre>
</div>
</div>
<br />
$elemMatch是匹配{ <span class="code-quote">"a"</span> : 1, <span class="code-quote">"b"</span> : 3 }，而后面一句是匹配{ <span class="code-quote">"b"</span> : 99 }, { <span class="code-quote">"a"</span> : 11 } <br />
<br />
<br />
12)&nbsp; 查询嵌入对象的值<br />
<br />
<div style="border-width: 1px;" class="code panel">
<div class="codeContent panelContent">
<pre class="code-java">db.postings.find( { <span class="code-quote">"author.name"</span> : <span class="code-quote">"joe"</span> } );</pre>
</div>
</div>
<p>注意用法是<span class="code-quote">author.name</span>，用一个点就行了。更详细的可以看这个链接： <a title="Dot Notation (Reaching into Objects)" href="http://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29">dot notation</a></p>
<p>举个例子：</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">&gt; db.blog.save({ title : <span class="code-quote">"My First Post"</span>, author: {name : <span class="code-quote">"Jane"</span>, id : 1}})</pre>
</div>
</div>
<p>如果我们要查询 authors name 是Jane的, 我们可以这样：</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">&gt; db.blog.findOne({<span class="code-quote">"author.name"</span> : <span class="code-quote">"Jane"</span>})</pre>
</div>
</div>
<p>如果不用点，那就需要用下面这句才能匹配：</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.blog.findOne({<span class="code-quote">"author"</span> : {<span class="code-quote">"name"</span> : <span class="code-quote">"Jane"</span>, <span class="code-quote">"id"</span> : 1}})</pre>
</div>
</div>
<p>下面这句：</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.blog.findOne({<span class="code-quote">"author"</span> : {<span class="code-quote">"name"</span> : <span class="code-quote">"Jane"</span>}})</pre>
</div>
</div>
<p>是不能匹配的，因为mongodb对于子对象，他是精确匹配。</p>
<p> </p>
<p>13) 元操作符 $not 取反</p>
<p>如：</p>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.customers.find( { name : { $not : /acme.*corp/i } } );</pre>
</div>
</div>
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">
<pre class="code-java">db.things.find( { a : { $not : { $mod : [ 10 , 1 ] } } } );</pre>
</div>
</div>
<h3> </h3>
mongodb还有很多函数可以用，<tt>如排序，统计等，请参考原文。<br />
<br />
mongodb目前没有或(or)操作符，只能用变通的办法代替，可以参考下面的链接：<br />
<br />
<a href="http://www.mongodb.org/display/DOCS/OR+operations+in+query+expressions" target="_blank">http://www.mongodb.org/display/DOCS/OR+operations+in+query+expressions</a></tt><br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/341263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2010-12-21 17:47 <a href="http://www.blogjava.net/ashutc/archive/2010/12/21/341263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mongodb python</title><link>http://www.blogjava.net/ashutc/archive/2010/12/20/341163.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Mon, 20 Dec 2010 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2010/12/20/341163.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/341163.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2010/12/20/341163.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/341163.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/341163.html</trackback:ping><description><![CDATA[<a href="http://www.mongodb.org/" target="_blank">http://www.mongodb.org</a> 下载mongodb版本<br />
<br />
安装pymongo模块。<a href="http://api.mongodb.org/python/" target="_blank">http://api.mongodb.org/python/</a><br />
按照版本安装相应模块。自动默认到python安装目录<br />
<pre>
<div><span style="color: #008000;">#</span><span style="color: #008000;">coding=utf-8</span><span style="color: #008000;"><br />
<br />
</span><span style="color: #0000ff;">from</span><span style="color: #000000;"> pymongo </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> Connection<br />
<br />
conn </span><span style="color: #000000;">=</span><span style="color: #000000;"> Connection(</span><span style="color: #800000;">"</span><span style="color: #800000;">localhost</span><span style="color: #800000;">"</span><span style="color: #000000;">)<br />
<br />
db </span><span style="color: #000000;">=</span><span style="color: #000000;"> conn.foo<br />
<br />
test </span><span style="color: #000000;">=</span><span style="color: #000000;"> {</span><span style="color: #800000;">"</span><span style="color: #800000;">id</span><span style="color: #800000;">"</span><span style="color: #000000;">:</span><span style="color: #000000;">1</span><span style="color: #000000;">, </span><span style="color: #800000;">"</span><span style="color: #800000;">novle</span><span style="color: #800000;">"</span><span style="color: #000000;">:</span><span style="color: #800000;">"测试一下</span><span style="color: #800000;">"</span><span style="color: #000000;">}<br />
<br />
db.foo.save(test)<br />
<br />
cursor </span><span style="color: #000000;">=</span><span style="color: #000000;"> db.foo.find()<br />
<br />
</span><span style="color: #0000ff;">for</span><span style="color: #000000;"> i </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> cursor:<br />
<br />
</span><span style="color: #0000ff;">print</span><span style="color: #000000;"> i</span></div>
<br />
</pre>
<p>虽然报错，不影响执行<br />
</p>
<p>out</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>
<div><span style="color: #000000;">{u</span><span style="color: #800000;">'</span><span style="color: #800000;">_id</span><span style="color: #800000;">'</span><span style="color: #000000;">: ObjectId(</span><span style="color: #800000;">'</span><span style="color: #800000;">4bc193c11724bc0cc4000000</span><span style="color: #800000;">'</span><span style="color: #000000;">), u</span><span style="color: #800000;">'</span><span style="color: #800000;">id</span><span style="color: #800000;">'</span><span style="color: #000000;">: </span><span style="color: #000000;">1</span><span style="color: #000000;">, u</span><span style="color: #800000;">'</span><span style="color: #800000;">novle</span><span style="color: #800000;">'</span><span style="color: #000000;">: u</span><span style="color: #800000;">'</span><span style="color: #800000;">\ufffd\ufffd\ufffd\ufffd</span><span style="color: #800000;">'</span><span style="color: #000000;">}<br />
<br />
</span></div>
<br />
</pre>
</div>
<p>&nbsp;</p>
<p>OK 测试成功</p>
<p>&nbsp;</p>
<p>下次 &nbsp;就是讲 怎么在DJANGO里面 使用mongodb了</p>
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/341163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2010-12-20 14:32 <a href="http://www.blogjava.net/ashutc/archive/2010/12/20/341163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MongoDB入门简介</title><link>http://www.blogjava.net/ashutc/archive/2010/12/20/341161.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Mon, 20 Dec 2010 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2010/12/20/341161.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/341161.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2010/12/20/341161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/341161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/341161.html</trackback:ping><description><![CDATA[<br />
<p>MongoDB把数据存储在文件中（默认路径为：/data/db），为提高效率使用内存映射文件进行管理。</p>
<p>安装：<br />
Linux/OS X下:<br />
1 建立数据目录<br />
&nbsp;mkdir -p /data/db<br />
2 下载压缩包<br />
&nbsp;curl -O <a href="http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz">http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz</a><br />
3 解压缩文件<br />
&nbsp;tar xzf mongodb-linux-i386-latest.tgz<br />
4 启动服务<br />
&nbsp;bin/mongod run &amp;<br />
5 使用自带客户端连接<br />
&nbsp;/bin/mongo<br />
6 测试<br />
&nbsp;db.foo.save( { a : 1 } )<br />
&nbsp;db.foo.findOne()</p>
<p>windows下：<br />
1 建立数据目录c:\data\db<br />
2 下载压缩包，解压文件<br />
3 启动服务<br />
&nbsp;bin\mongod.exe run<br />
4 自带客户端<br />
&nbsp;bin\mongon.exe</p>
<p>在LINUX和WINDOWS系统下的使用大同小异，不同的地方主要是默认的数据存储目录。LINUX类系统下存放在/data/db下，而WINDOWS</p>
<p>会存放在C:\data\db下。可以在启动时使用--dbpath参数指定存储目录并启动。如：bin\mongod.exe --dbpath d:\data\mongo</p>
<p>常用启动参数：<br />
run 直接启动。例：./mongod run<br />
--dbpath 指定特定存储目录启动，若目录不存在则创建。例：./mongod --dbpath /var/data/mongo<br />
--port 指定端口启动。例：./mongod --port 12345</p>
<p>停止MONGO服务：<br />
方法1：服务端停止，可使用Ctrl+C<br />
方法2：在客户端停止，可先连接客户端<br />
&nbsp;./mongo<br />
&nbsp;并使用命令<br />
&nbsp;db.shutdownerver()<br />
&nbsp;然后退出客户端<br />
&nbsp;exit</p>
<p>使用JAVA语言操作MONGODB非常简单，只要将驱动文件加入到CLASSPATH中就可以使用。</p>
<p>1 建立连接<br />
&nbsp; 要建立MongoDB的连接，你只要指定要连接到的数据库就可以。这个数据库不一定存在，如果不存在，MongoDB会先为你建立这个</p>
<p>库。同时，在连接时你也可以具体指定要连接到的网络地址和端口。下面的是连接本机数据库的一些例子：</p>
<p>import com.mongodb.Mongo;<br />
import com.mongodb.DBCollection;<br />
import com.mongodb.BasicDBObject;<br />
import com.mongodb.DBObject;<br />
import com.mongodb.DBCursor;<br />
import com.mongodb.MongoAdmin;</p>
<p>Mongo db = new Mongo("mydb");<br />
Mongo db = new Mongo("localhost", "mydb");<br />
Mongo db = new Mongo("localhost", 27017, "mydb");</p>
<p>2 安全验证（非必选）<br />
MongoDB服务可以在安全模式运行，此时任何客户端要连接数据库时需使用用户名和密码。在JAVA中可使用如下方法连接：</p>
<p>boolean auth = db.authenticate(userName, password);</p>
<p>如果用户名密码验证通过，返回值为true，否则为false</p>
<p>3 获取集合列表<br />
每个数据库都存在零个或多个集合，需要时你可以获得他们的列表：</p>
<p>Set&lt;String&gt; colls = db.getCollectionNames();<br />
for(String s : colls){<br />
&nbsp;System.out.println(s);<br />
}</p>
<p>4 获得一个集合<br />
要获得某个特定集合，你可以指定集合的名字，并使用getCollection()方法：</p>
<p>DBCollection coll = db.getCollection("testCollection");</p>
<p>当你获取了这个集合对象，你就可以对数据进行增删查改之类的操作。</p>
<p>5 插入文档<br />
当你获得了一个集合对象，你就可以把文档插入到这个对象中。例如，存在一个JSON式的小文档：<br />
{<br />
&nbsp;"name" : "MongoDB",<br />
&nbsp;"type" : "database",<br />
&nbsp;"count" : 1,<br />
&nbsp;"info" : {<br />
&nbsp;&nbsp;&nbsp;x : 203,<br />
&nbsp;&nbsp;&nbsp;y : 102<br />
&nbsp;&nbsp;}<br />
}<br />
请注意，这个文档包含一个内部文档。我们可以使用BasicDBObject类来创建这个文档，并且使用insert()方法方便地将它插入到集</p>
<p>合中。</p>
<p>BasicDBObject doc = new BasicDBObject();<br />
doc.put("name", "MongoDB");<br />
doc.put("type", "database");<br />
doc.put("count", 1);</p>
<p>BasicDBObject info = new BasicDBObject();<br />
info.put("x", 203);<br />
info.put("y", 102);</p>
<p>doc.put("info", info);</p>
<p>coll.insert(doc);</p>
<p>6 使用findOne()查找集合中第一个文档<br />
要查找我们上一步插入的那个文档，可以简单地使用findOne()操作来获取集合中第一个文档。这个方法返回一个单一文档（这是相对于使用DBCursor的find()操作的返回），这对于只有一个文档或我们刚插入第一个文档时很有用，因为此时并不需要使用光标。</p>
<p>DBObject myDoc = coll.findOne();<br />
System.out.println(myDoc);</p>
<p>返回类似：<br />
{<br />
&nbsp;"_id" : "ac907a1f5b9d5e4a233ed300" ,<br />
&nbsp;"name" : "MongoDB" ,<br />
&nbsp;"type" : 1 , <br />
&nbsp;"info" : { <br />
&nbsp;&nbsp;"x" : 203 ,<br />
&nbsp;&nbsp;"y" : 102} , <br />
&nbsp;"_ns" : "testCollection"<br />
}</p>
<p>注意_id和_ns元素是由MongoDB自动加入你的文档。记住：MongoDB内部存储使用的元素名是以&#8220;_&#8221;做为开始。</p>
<p>7 加入多种文档<br />
为了做更多有趣的查询试验，让我们向集合中加入多种文档类型，象：<br />
{<br />
&nbsp;"i" : value<br />
}<br />
可以通过循环来实现</p>
<p>for(int i = 0; i &lt; 100; i++){<br />
&nbsp;coll.insert(new BasicDBObject().append("i", i));<br />
}</p>
<p>注意我们可以在一个集合中插入不同类型的文档，这就是我们所说的&#8220;模式自由&#8221;（schema-free）。</p>
<p>8 统计文档数量<br />
&nbsp;使用getCount()方法</p>
<p>System.out.println(coll.getCount());</p>
<p>9 使用光标（cursor）来获取全部文档<br />
为了获取集合中的所有文档，我们可以使用find()方法。这个方法返回一上DBCursor对象，来允许我们将符合查询条件的文档迭代</p>
<p>出来。</p>
<p>DBCursor cur = coll.find();<br />
while(cur.hasNext()){<br />
&nbsp;System.out.println(cur.next());<br />
}</p>
<p>10 在查询中获取单一文档<br />
我们可以创建一个查询，并传递给find()方法来获取集合中所有文档的一个子集。例如，我们想要查询域名为"i"，并且值为71的文档：</p>
<p>BasicDBObject query = new BasicDBObject();<br />
query.put("i", 71);<br />
cur = coll.find(query);<br />
while(cur.hasNext()){<br />
&nbsp;System.out.println(cur.next());<br />
}</p>
<p>11 使用条件查询获取集合<br />
例如，我们想要查询所有i&gt;50的文档：</p>
<p>BasicDBObject query = new BasicDBObject();<br />
query.put("i", new BasicDBObject("$gt", 50));<br />
cur = coll.find(query);<br />
while(cur.hasNext()){<br />
&nbsp;System.out.println(cur.next());<br />
}</p>
<p>当然，我们也可以做20 &lt; i &lt;= 30的查询</p>
<p>BasicDBObject query = new BasicDBObject();<br />
query.put("i", new BasicDBObject("$gt", 20).append("$lte", 30));<br />
cur = coll.find(query);<br />
while(cur.hasNext()){<br />
&nbsp;System.out.println(cur.next());<br />
}</p>
<p>12 创建索引<br />
MongoDB支持索引，而且很容易在集合上增加索引。要创建索引，只需要指定要加索引的属性，并且指定升序（1）或降序即可（-1）。</p>
<p>coll.createIndex(new BasicDBObject("i", 1));</p>
<p>13 获取索引列表</p>
<p>List&lt;DBObject&gt; list = coll.getIndexInfo();<br />
for(DBObject o : list){<br />
&nbsp;System.out.println(o);<br />
}</p>
<p>14 MongoDB管理函数<br />
管理函数在com.mongodb.MongoAdmin类中定义。<br />
例A：获取数据库列表<br />
&nbsp;MongoAdmin admin = new MongoAdmin();<br />
&nbsp;for(String s : admin.getDatabaseNames()){<br />
&nbsp;&nbsp;System.out.println(s);<br />
&nbsp;}</p>
<p>例B：获取数据库对象<br />
&nbsp;Mongo m = admin.getDB("mydb");</p>
<p>例C：删除数据库<br />
&nbsp;admin.dropDatabase("mydb");</p>
<p>15 用DBObject存储JAVA对象<br />
MongoDB for JAVA驱动中提供了用于向数据库中存储普通对象的接口DBObject<br />
例如，存在一个需要存储的对象类Tweet<br />
public class Tweet implements DBObject{<br />
&nbsp;/*...*/<br />
}<br />
可以使用如下代码：</p>
<p>Tweet myTweet = new Tweet();<br />
myTweet.put("user", userId);<br />
myTweet.put("message", message);<br />
myTweet.put("date", new Date());</p>
<p>collection.insert(myTweet);</p>
<p>当一个文档从MongoDB中取出时，它会自动把文档转换成DBObject接口类型，要将它实例化为你的对象，需使用</p>
<p>DBCollection.setObjectClass()。<br />
collection.setObjectClass(Tweet);<br />
Tweet myTweet = (Tweet)collection.findOne();</p>
<p>16 JAVA驱动的并发性<br />
JAVA的MongoDB驱动是线程安全的。如果你将它用在WEB服务中，可以创建它的一个单例，并在所有请求中使用它。</p>
<p>然而，如果你需要在一个会话（例如HTTP请求）中保证事务一致性，也许你会希望在这个会话中对驱动使用同一个端口。这仅仅在</p>
<p>请求量非常大的环境中，例如你经常会读取刚写入的数据。<br />
为了这一点，你需要使用如下代码：<br />
Mongo m;<br />
m.restartStart();</p>
<p>// code.........</p>
<p>m.requestDone();</p>
<p><br />
以上介绍了简单的mongoDB使用，更多信息请查阅MongoDB API for Java。</p>
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/341161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2010-12-20 14:28 <a href="http://www.blogjava.net/ashutc/archive/2010/12/20/341161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MongoDb 命令</title><link>http://www.blogjava.net/ashutc/archive/2010/12/20/341160.html</link><dc:creator>西瓜</dc:creator><author>西瓜</author><pubDate>Mon, 20 Dec 2010 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/ashutc/archive/2010/12/20/341160.html</guid><wfw:comment>http://www.blogjava.net/ashutc/comments/341160.html</wfw:comment><comments>http://www.blogjava.net/ashutc/archive/2010/12/20/341160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ashutc/comments/commentRss/341160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ashutc/services/trackbacks/341160.html</trackback:ping><description><![CDATA[查询所有数据库列表<br />
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; show dbs</code><br />
如果想查看当前连接在哪个数据库下面，可以直接输入db
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; db<br />
Admin</code>想切换到test数据库下面
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; use test<br />
switched to db test<br />
&gt; db<br />
Test</code>想查看test下有哪些表或者叫collection，可以输入
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; show collections<br />
system.indexes<br />
user</code>想知道mongodb支持哪些命令，可以直接输入help
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; help<br />
HELP<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>show dbs&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>show database names<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>show collections&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> show collections in current database<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>show users&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> show users in current database<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>show profile&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>show most recent system.profile entries with time &gt;= 1ms<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>use &lt;db name&gt;&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> set curent database to &lt;db name&gt;<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.help()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>help on DB methods<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.help()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> help on collection methods<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> list objects in collection foo<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find( { a : 1 } )&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>list objects in foo where a == 1<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>it&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>result of the last line evaluated; use to further iterate</code>如果想知道当前数据库支持哪些方法：
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; db.help();<br />
DB methods:<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.addUser(username, password) 添加数据库授权用户<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.auth(username, password)&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> 访问认证<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.cloneDatabase(fromhost) 克隆数据库<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.commandHelp(name) returns the help for the command<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.copyDatabase(fromdb, todb, fromhost)&nbsp;<wbr>&nbsp;<wbr>复制数据库<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.createCollection(name, { size : ..., capped : ..., max : ... } ) 创建表<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.currentOp() displays the current operation in the db<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.dropDatabase()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>删除当前数据库<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.eval_r(func, args) run code server-side<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getCollection(cname) same as db['cname'] or db.cname<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getCollectionNames()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>获取当前数据库的表名<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getLastError() - just returns the err msg string<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getLastErrorObj() - return full status object<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getMongo() get the server connection object<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getName()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getPrevError()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getProfilingLevel()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getReplicationInfo()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.getSisterDB(name) get the db at the same server as this onew<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.killOp() kills the current operation in the db<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.printCollectionStats()&nbsp;<wbr> &nbsp;<wbr>打印各表的状态信息<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.printReplicationInfo()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>打印主数据库的复制状态信息<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.printSlaveReplicationInfo()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>打印从数据库的复制状态信息<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.printShardingStatus()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> 打印分片状态信息<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.removeUser(username) 删除数据库用户<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.repairDatabase() 修复数据库<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.resetError()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.runCommand(cmdObj) run a database command.&nbsp;<wbr>&nbsp;<wbr>if cmdObj is a string, turns it into { cmdObj : 1 }<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.setProfilingLevel(level) 0=off 1=slow 2=all<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.shutdownServer()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.version() current version of the server</code>如果想知道当前数据库下的表或者表collection支持哪些方法，可以使用一下命令如：
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; db.user.help();&nbsp;<wbr>&nbsp;<wbr>user为表名<br />
DBCollection help<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.count()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> 统计表的行数<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.dataSize()&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>统计表数据的大小<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.distinct( key ) - eg. db.foo.distinct( 'x' )&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> 按照给定的条件除重<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.drop() drop the collection 删除表<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.dropIndex(name)&nbsp;<wbr>&nbsp;<wbr>删除指定索引<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.dropIndexes() 删除所有索引<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.ensureIndex(keypattern,options) - options should be an object with these possible fields: name, unique, dropDups&nbsp;<wbr>&nbsp;<wbr>增加索引<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find( [query] , [fields]) -
first parameter is an optional query filter. second parameter is
optional set of fields to return. 根据条件查找数据<br />
-----------------------<br />
<wbr>通过条件查询： db.foo.find( { x : 77 } , { name : 1 , x : 1 } )<br />
-----------------------------<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find(...).count()<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find(...).limit(n) 根据条件查找数据并返回指定记录数<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find(...).skip(n)<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.find(...).sort(...) 查找排序<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.findOne([query]) 根据条件查询只查询一条数据<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.getDB() get DB object associated with collection&nbsp;<wbr>&nbsp;<wbr>返回表所属的库<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.getIndexes() 显示表的所有索引<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } ) 根据条件分组<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.mapReduce( mapFunction , reduceFunction , &lt;optional params&gt; )<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.remove(query) 根据条件删除数据<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.renameCollection( newName ) renames the collection&nbsp;<wbr>&nbsp;<wbr>重命名表<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.save(obj) 保存数据<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.stats()&nbsp;<wbr>&nbsp;<wbr>查看表的状态<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.storageSize() - includes free space allocated to this collection 查询分配到表空间大小<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.totalIndexSize() - size in bytes of all the indexes 查询所有索引的大小<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.totalSize() - storage allocated for all data and indexes 查询表的总大小<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.update(query, object[, upsert_bool]) 根据条件更新数据<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.validate() - SLOW 验证表的详细信息<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>db.foo.getShardVersion() - only for use with sharding</code>Mongodb的备份工具mongodump<br />
<br />
如果想备份数据库test 如：
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">[falcon@www.fwphp.cn&nbsp;<wbr>&nbsp;<wbr>~/mongodb/bin]$ ./mongodump --help<br />
options:<br />
<wbr>&nbsp;<wbr>--help&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> produce help message<br />
<wbr>&nbsp;<wbr>-h [ --host ] arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>mongo host to connect to<br />
<wbr>&nbsp;<wbr>-d [ --db ] arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> database to use<br />
<wbr>&nbsp;<wbr>-c [ --collection ] arg&nbsp;<wbr>&nbsp;<wbr>collection to use (some commands)<br />
<wbr>&nbsp;<wbr>-u [ --username ] arg&nbsp;<wbr> &nbsp;<wbr> username<br />
<wbr>&nbsp;<wbr>-p [ --password ] arg&nbsp;<wbr> &nbsp;<wbr> password<br />
<wbr>&nbsp;<wbr>--dbpath arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> directly access mongod data files in this path,<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>instead of connecting to a mongod instance<br />
<wbr>&nbsp;<wbr>-v [ --verbose ]&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>be more verbose (include multiple times for more<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>verbosity e.g. -vvvvv)<br />
<wbr>&nbsp;<wbr>-o [ --out ] arg (=dump) output directory<br />
[falcon@www.fwphp.cn&nbsp;<wbr>&nbsp;<wbr>~/mongodb/bin]$ [color=Blue]./mongodump -d test -o test/[/color]<br />
connected to: 127.0.0.1<br />
DATABASE: test&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>to&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>test/test<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>test.user to test/test/user.bson<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>100000 objects<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>test.system.indexes to test/test/system.indexes.bson<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>1 objects<br />
[falcon@www.fwphp.cn&nbsp;<wbr>&nbsp;<wbr>~/mongodb/bin]$ ls<br />
2&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>mongo&nbsp;<wbr> &nbsp;<wbr>mongodump&nbsp;<wbr> &nbsp;<wbr> mongofiles&nbsp;<wbr> &nbsp;<wbr>mongorestore&nbsp;<wbr>&nbsp;<wbr>mongosniff<br />
dump&nbsp;<wbr>&nbsp;<wbr>mongod&nbsp;<wbr>&nbsp;<wbr>mongoexport&nbsp;<wbr>&nbsp;<wbr>mongoimport&nbsp;<wbr>&nbsp;<wbr>mongos&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>test</code>MongoDB的数据恢复工具mongorestore<br />
<br />
查看test库中的表
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; show collections<br />
system.indexes<br />
User</code>删除user表
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; db.user.drop();<br />
True<br />
<br />
&gt; show collections<br />
System.indexes</code>现在利用mongorestore表恢复刚才利用mongodump备份的数据
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">[falcon@www.fwphp.cn&nbsp;<wbr>&nbsp;<wbr>~/mongodb/bin]$ ./mongorestore --help<br />
usage: ./mongorestore [options] [directory or filename to restore from]<br />
options:<br />
<wbr>&nbsp;<wbr>--help&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>produce help message<br />
<wbr>&nbsp;<wbr>-h [ --host ] arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr> mongo host to connect to<br />
<wbr>&nbsp;<wbr>-d [ --db ] arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>database to use<br />
<wbr>&nbsp;<wbr>-c [ --collection ] arg collection to use (some commands)<br />
<wbr>&nbsp;<wbr>-u [ --username ] arg&nbsp;<wbr> &nbsp;<wbr>username<br />
<wbr>&nbsp;<wbr>-p [ --password ] arg&nbsp;<wbr> &nbsp;<wbr>password<br />
<wbr>&nbsp;<wbr>--dbpath arg&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>directly access mongod data files in this path,<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>instead of connecting to a mongod instance<br />
<wbr>&nbsp;<wbr>-v [ --verbose ]&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>be more verbose (include multiple times for more<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>verbosity e.g. -vvvvv)<br />
<br />
[falcon@www.fwphp.cn&nbsp;<wbr>&nbsp;<wbr>~/mongodb/bin]$ ./mongorestore -d test -c user test/test/user.bson<br />
connected to: 127.0.0.1<br />
test/test/user.bson<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>going into namespace [test.user]<br />
<br />
<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>&nbsp;<wbr> &nbsp;<wbr>100000 objects</code>User表中的10w条记录已经恢复
<p style="margin: 1em 1em 0px; font-weight: bold;">CODE:</p>
<code style="border: 1px solid #cccccc; padding: 0.5em; margin: 0px 1em 1em; display: block; font: 12px/1.8em Courier,monospace;">&gt; show collections<br />
system.indexes<br />
user<br />
&gt; db.user.find();<br />
{ "_id" : ObjectId("4b9c8db08ead0e3347000000<wbr>"), "uid" : 1, "username" : "Falcon.C-1" }<br />
{ "_id" : ObjectId("4b9c8db08ead0e3347010000<wbr>"), "uid" : 2, "username" : "Falcon.C-2" }<br />
{ "_id" : ObjectId("4b9c8db08ead0e3347020000<wbr>"), "uid" : 3, "username" : "Falcon.C-3" }<br />
{ "_id" : ObjectId("4b9c8db08ead0e3347030000<wbr>"), "uid" : 4, "username" : "Falcon.C-4" }<br />
{ "_id" : ObjectId("4b9c8db08ead0e3347040000<wbr>"), "uid" : 5, "username" : "Falcon.C-5" }<br />
.................<br />
has more<br />
<br />
</code><br />
<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">.&nbsp;超级用户相关：</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"> #增加或修改用户密码<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"> db.addUser(</span><span style="color: #000000;">'</span><span style="color: #000000;">admin</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">pwd</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;"> #查看用户列表<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.system.users.find()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#用户认证<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.auth(</span><span style="color: #000000;">'</span><span style="color: #000000;">admin</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">pwd</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">#删除用户<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.removeUser(</span><span style="color: #000000;">'</span><span style="color: #000000;">mongodb</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看所有用户<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">show&nbsp;users<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看所有数据库<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">show&nbsp;dbs<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看所有的collection<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">show&nbsp;collections<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看各collection的状态<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.printCollectionStats()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看主从复制状态<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.printReplicationInfo()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#修复数据库<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.repairDatabase()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#设置记录profiling，</span><span style="color: #000000;">0</span><span style="color: #000000;">=</span><span style="color: #000000;">off&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">=</span><span style="color: #000000;">slow&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">=</span><span style="color: #000000;">all<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.setProfilingLevel(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看profiling<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">show&nbsp;profile<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#拷贝数据库<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.copyDatabase(</span><span style="color: #000000;">'</span><span style="color: #000000;">mail_addr</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">mail_addr_tmp</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#删除collection<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.mail_addr.drop()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#删除当前的数据库<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.dropDatabase()<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">.&nbsp;客户端连接<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">local</span><span style="color: #000000;">/</span><span style="color: #000000;">mongodb</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">mongo&nbsp;user_addr&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">u&nbsp;user&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">p&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">pwd</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">.&nbsp;增删改<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;"> #存储嵌套的对象<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.save({</span><span style="color: #000000;">'</span><span style="color: #000000;">name</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">ysz</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">address</span><span style="color: #000000;">'</span><span style="color: #000000;">:{</span><span style="color: #000000;">'</span><span style="color: #000000;">city</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">beijing</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">post</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">100096</span><span style="color: #000000;">},</span><span style="color: #000000;">'</span><span style="color: #000000;">phone</span><span style="color: #000000;">'</span><span style="color: #000000;">:[</span><span style="color: #000000;">138</span><span style="color: #000000;">,</span><span style="color: #000000;">139</span><span style="color: #000000;">]})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#存储数组对象<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.user_addr.save({</span><span style="color: #000000;">'</span><span style="color: #000000;">Uid</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">yushunzhi@sohu.com</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">Al</span><span style="color: #000000;">'</span><span style="color: #000000;">:[</span><span style="color: #000000;">'</span><span style="color: #000000;">test-1@sohu.com</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">'</span><span style="color: #000000;">test-2@sohu.com</span><span style="color: #000000;">'</span><span style="color: #000000;">]})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#根据query条件修改，如果不存在则插入，允许修改多条记录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.update({</span><span style="color: #000000;">'</span><span style="color: #000000;">yy</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">5</span><span style="color: #000000;">},{</span><span style="color: #000000;">'</span><span style="color: #000000;">$set</span><span style="color: #000000;">'</span><span style="color: #000000;">:{</span><span style="color: #000000;">'</span><span style="color: #000000;">xx</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">2</span><span style="color: #000000;">}},upsert</span><span style="color: #000000;">=</span><span style="color: #0000ff;">true</span><span style="color: #000000;">,multi</span><span style="color: #000000;">=</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#删除yy</span><span style="color: #000000;">=</span><span style="color: #000000;">5的记录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.remove({</span><span style="color: #000000;">'</span><span style="color: #000000;">yy</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">5</span><span style="color: #000000;">})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#删除所有的记录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.remove()<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">.&nbsp;索引<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">增加索引：</span><span style="color: #000000;">1</span><span style="color: #000000;">(ascending),</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">(descending)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.things.ensureIndex({firstname:&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">,&nbsp;lastname:&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">},&nbsp;{unique:&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">});<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#索引子对象<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.user_addr.ensureIndex({</span><span style="color: #000000;">'</span><span style="color: #000000;">Al.Em</span><span style="color: #000000;">'</span><span style="color: #000000;">:&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看索引信息<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.getIndexes()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.getIndexKeys()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#根据索引名删除索引<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.user_addr.dropIndex(</span><span style="color: #000000;">'</span><span style="color: #000000;">Al.Em_1</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">5</span><span style="color: #000000;">.&nbsp;查询<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">查找所有<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.find()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查找一条记录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.findOne()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#根据条件检索10条记录<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">msg</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">Hello&nbsp;1</span><span style="color: #000000;">'</span><span style="color: #000000;">}).limit(</span><span style="color: #000000;">10</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#sort排序<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">From</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">yushunzhi@sohu.com</span><span style="color: #000000;">'</span><span style="color: #000000;">}).sort({</span><span style="color: #000000;">'</span><span style="color: #000000;">Dt</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.find().sort({</span><span style="color: #000000;">'</span><span style="color: #000000;">Ct</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">}).limit(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#count操作<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.user_addr.count()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#distinct操作<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.distinct(</span><span style="color: #000000;">'</span><span style="color: #000000;">msg</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">操作<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.find({</span><span style="color: #000000;">"</span><span style="color: #000000;">timestamp</span><span style="color: #000000;">"</span><span style="color: #000000;">:&nbsp;{</span><span style="color: #000000;">"</span><span style="color: #000000;">$gte</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;:&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">}})<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#子对象的查找<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.foo.find({</span><span style="color: #000000;">'</span><span style="color: #000000;">address.city</span><span style="color: #000000;">'</span><span style="color: #000000;">:</span><span style="color: #000000;">'</span><span style="color: #000000;">beijing</span><span style="color: #000000;">'</span><span style="color: #000000;">})<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">.&nbsp;管理<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">查看collection数据的大小<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.dataSize()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查看colleciont状态<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.stats()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">#查询所有索引的大小<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">db.deliver_status.totalIndexSize()<br />
<br />
<br />
<br />
<br />
<br />
<br />
</span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/ashutc/aggbug/341160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ashutc/" target="_blank">西瓜</a> 2010-12-20 14:25 <a href="http://www.blogjava.net/ashutc/archive/2010/12/20/341160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>