免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2362 | 回复: 0
打印 上一主题 下一主题

[MongoDB] MongoDB 语法和SQL语法对应表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:53 |只看该作者 |倒序浏览
<table class="confluenceTable"><tbody><tr><th class="confluenceTh">SQL Statement <br class="atl-forced-newline"> </th>
<th class="confluenceTh"> Mongo Statement <br class="atl-forced-newline"> </th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
CREATE TABLE USERS (a <span class="code-object">Number</span>, b <span class="code-object">Number</span>)
</div></div> </td>
<td class="confluenceTd"> implicit; can also be done <a href="http://www.mongodb.org/display/DOCS/createCollection+Command" title="createCollection Command" target="_blank">explicitly</a> with <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.createCollection(<span class="code-quote">"mycoll"</span>)
</div></div></td>
</tr>
<tr>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
INSERT INTO USERS VALUES(3,5)
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.insert({a:3,b:5})
</div></div> </td>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT a,b FROM users
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({}, {a:1,b:1})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find()
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE age=33
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({age:33})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT a,b FROM users WHERE age=33
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({age:33}, {a:1,b:1})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE age=33 ORDER BY name
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({age:33}).sort({name:1})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE age&gt;33
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({'age':{$gt:33}})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE age&lt;33
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({'age':{$lt:33}})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE name LIKE <span class="code-quote">"%Joe%"</span>
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({name:/Joe/})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE name LIKE <span class="code-quote">"Joe%"</span>
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({name:/^Joe/})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE age&gt;33 AND age&lt;=40
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({'age':{$gt:33,$lte:40}})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users ORDER BY name DESC
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find().sort({name:-1})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE a=1 and b='q'
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({a:1,b:'q'})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users LIMIT 10 SKIP 20
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find().limit(10).skip(20)
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users WHERE a=1 or b=2
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT * FROM users LIMIT 1
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.findOne()
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT DISTINCT last_name FROM users
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.distinct('last_name')
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT COUNT(*y)
FROM users
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.count()
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT COUNT(*y)
FROM users where AGE &gt; 30
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({age: {'$gt': 30}}).count()
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
SELECT COUNT(AGE) from users
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({age: {'$exists': <span class="code-keyword">true</span>}}).count()
</div></div> </td>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
CREATE INDEX myindexname ON users(name)

</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.ensureIndex({name:1})
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
CREATE INDEX myindexname ON users(name,ts DESC)

</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.ensureIndex({name:1,ts:-1})
</div></div> </td>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
EXPLAIN SELECT * FROM users WHERE z=3
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.find({z:3}).explain()
</div></div> </td>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
UPDATE users SET a=1 WHERE b='q'
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.update({b:'q'}, {$set:{a:1}}, <span class="code-keyword">false</span>, <span class="code-keyword">true</span>)
</div></div> </td>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
UPDATE users SET a=a+2 WHERE b='q'
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.update({b:'q'}, {$inc:{a:2}}, <span class="code-keyword">false</span>, <span class="code-keyword">true</span>)
</div></div> </td>
</tr>
<tr>
<th class="confluenceTh">&nbsp;</th>
<th class="confluenceTh">&nbsp;</th>
</tr>
<tr>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
DELETE FROM users WHERE z=<span class="code-quote">"abc"</span>
</div></div> </td>
<td class="confluenceTd"> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
db.users.remove({z:'abc'});
</div></div></td></tr></tbody></table>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP