Docs/数据库/mongodb/MongoDB数据表基本操作.html
2022-10-18 16:59:37 +08:00

210 lines
No EOL
9.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="tool" content="leanote-desktop-app">
<title>MongoDB数据表基本操作</title>
<style>
*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
body {
margin: 0;
}
/*公用文字样式*/
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
.note-container{
width:850px;
margin:auto;
padding: 10px 20px;
box-shadow: 1px 1px 10px #eee;
}
#title {
margin: 0;
}
table {
margin-bottom: 16px;
border-collapse: collapse;
}
table th, table td {
padding: 6px 13px;
border: 1px solid #ddd;
}
table th {
font-weight: bold;
}
table tr {
background-color: none;
border-top: 1px solid #ccc;
}
table tr:nth-child(2n) {
background-color: rgb(247, 247, 249);
}
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
border: 1px solid #ddd;
border-collapse: collapse;
padding: 6px 13px;
}
blockquote {
border-left-width:10px;
background-color:rgba(128,128,128,0.05);
border-top-right-radius:5px;
border-bottom-right-radius:5px;
padding:15px 20px;
border-left:5px solid rgba(128,128,128,0.075);
}
blockquote p {
margin-bottom:1.1em;
font-size:1em;
line-height:1.45
}
blockquote ul:last-child,blockquote ol:last-child {
margin-bottom:0
}
pre {
padding: 18px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
border-radius: 3px;
display: block;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
white-space: nowrap;
background-color: #f9f2f4;
border-radius: 4px;
}
.footnote {
vertical-align: top;
position: relative;
top: -0.5em;
font-size: .8em;
}
hr {
margin:2em 0
}
img {
max-width:100%
}
pre {
word-break:break-word
}
p,pre,pre.prettyprint,blockquote {
margin:0 0 1.1em
}
hr {
margin:2em 0
}
img {
max-width:100%
}
.sequence-diagram,.flow-chart {
text-align:center;
margin-bottom:1.1em
}
.sequence-diagram text,.flow-chart text {
font-size:15px !important;
font-family:"Source Sans Pro",sans-serif !important
}
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
fill:#f6f6f6
}
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
stroke:#3f3f3f
}
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
stroke:none
}
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
fill:#3f3f3f
}
ul,ol {
margin-bottom:1.1em
}
ul ul,ol ul,ul ol,ol ol {
margin-bottom:1.1em
}
kbd {
padding:.1em .6em;
border:1px solid rgba(63,63,63,0.25);
-webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
box-shadow:0 1px 0 rgba(63,63,63,0.25);
font-size:.7em;
font-family:sans-serif;
background-color:#fff;
color:#333;
border-radius:3px;
display:inline-block;
margin:0 .1em;
white-space:nowrap
}
.toc ul {
list-style-type:none;
margin-bottom:15px
}
</style>
<!-- 该css供自定义样式 -->
<link href="../leanote-html.css" rel="stylesheet">
</head>
<body>
<div class="note-container">
<h1 class="title" id="leanote-title">MongoDB数据表基本操作</h1>
<div class="content-html" id="leanote-content"><p>查看全部数据表</p><pre id="leanote_ace_1479781232163_0" class="brush:sh ace-tomorrow">&gt;&nbsp;use&nbsp;ChatRoom
switched&nbsp;to&nbsp;db&nbsp;ChatRoom
&gt;&nbsp;show&nbsp;collections
Account
Chat
system.indexes
system.users</pre><p>创建数据表</p><pre id="leanote_ace_1479781278873_0" class="brush:sh ace-tomorrow">&gt;&nbsp;db.createCollection("Account")
{"ok":1}</pre><pre id="leanote_ace_1479781293825_0" class="brush:sh ace-tomorrow">&gt;&nbsp;db.createCollection("Test",{capped:true,&nbsp;size:10000})&nbsp;{&nbsp;"ok"&nbsp;:&nbsp;1&nbsp;}
{"ok":1}</pre><p>-- 说明</p><p>capped:true表示该集合的结构不能被修改</p><p>size:在建表之初就指定一定的空间大小接下来的插入操作会不断地按顺序APPEND数据在这个预分配好空间的文件中如果已经超出空间大小则回到文件头覆盖原来的数据继续插入。这种结构保证了插入和查询的高效性它不允许删除单个记录更新的也有限制不能超过原有记录的大小。这种表效率很高它适用于一些暂时保存数据的场合比如网站中登录用户的session信息又比如一些程序的监控日志都是属于过了一定的时间就可以被覆盖的数据。</p><p>&nbsp;<br></p><p>修改数据表名</p><pre id="leanote_ace_1479781320849_0" class="brush:sh ace-tomorrow">&gt;&nbsp;db.Account.renameCollection("Account1")
{&nbsp;"ok"&nbsp;:&nbsp;1&nbsp;}</pre><p>&nbsp;<br></p><p>数据表帮助主题help</p><pre id="leanote_ace_1479781866930_0" class="brush:sh ace-tomorrow">&gt;&nbsp;db.Account.help()
DBCollection&nbsp;help
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find().help()&nbsp;-&nbsp;show&nbsp;DBCursor&nbsp;help
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.count()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.dataSize()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.distinct(&nbsp;key&nbsp;)&nbsp;-&nbsp;eg.&nbsp;db.Account.distinct(&nbsp;'x'&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.drop()&nbsp;drop&nbsp;the&nbsp;collection
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.dropIndex(name)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.dropIndexes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.ensureIndex(keypattern[,options])&nbsp;-&nbsp;options&nbsp;is&nbsp;an&nbsp;object&nbsp;with&nbsp;these&nbsp;possible&nbsp;fields:&nbsp;name,&nbsp;unique,&nbsp;dropDups
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.reIndex()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find([query],[fields])&nbsp;-&nbsp;query&nbsp;is&nbsp;an&nbsp;optional&nbsp;query&nbsp;filter.&nbsp;fields&nbsp;is&nbsp;optional&nbsp;set&nbsp;of&nbsp;fields&nbsp;to&nbsp;retur.
&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.g.&nbsp;db.Account.find(&nbsp;{x:77}&nbsp;,&nbsp;{name:1,&nbsp;x:1}&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find(...).count()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find(...).limit(n)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find(...).skip(n)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.find(...).sort(...)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.findOne([query])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.findAndModify(&nbsp;{&nbsp;update&nbsp;:&nbsp;...&nbsp;,&nbsp;remove&nbsp;:&nbsp;bool&nbsp;[,&nbsp;query:&nbsp;{},&nbsp;sort:&nbsp;{},&nbsp;'new':&nbsp;false]&nbsp;}&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.getDB()&nbsp;get&nbsp;DB&nbsp;object&nbsp;associated&nbsp;with&nbsp;collection
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.getIndexes()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.group(&nbsp;{&nbsp;key&nbsp;:&nbsp;...,&nbsp;initial:&nbsp;...,&nbsp;reduce&nbsp;:&nbsp;...[,&nbsp;cond:&nbsp;...]&nbsp;}&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.mapReduce(&nbsp;mapFunction&nbsp;,&nbsp;reduceFunction&nbsp;,&nbsp;&lt;optional&nbsp;params&gt;&nbsp;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.remove(query)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.renameCollection(&nbsp;newName&nbsp;,&nbsp;&lt;dropTarget&gt;&nbsp;)&nbsp;renames&nbsp;the&nbsp;collection.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.runCommand(&nbsp;name&nbsp;,&nbsp;&lt;options&gt;&nbsp;)&nbsp;runs&nbsp;a&nbsp;db&nbsp;command&nbsp;with&nbsp;the&nbsp;given&nbsp;name&nbsp;where&nbsp;the&nbsp;first&nbsp;param&nbsp;is&nbsp;the&nbsp;collection&nbsp;name
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.save(obj)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.stats()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.storageSize()&nbsp;-&nbsp;includes&nbsp;free&nbsp;space&nbsp;allocated&nbsp;to&nbsp;this&nbsp;collection
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.totalIndexSize()&nbsp;-&nbsp;size&nbsp;in&nbsp;bytes&nbsp;of&nbsp;all&nbsp;the&nbsp;indexes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.totalSize()&nbsp;-&nbsp;storage&nbsp;allocated&nbsp;for&nbsp;all&nbsp;data&nbsp;and&nbsp;indexes
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.update(query,&nbsp;object[,&nbsp;upsert_bool,&nbsp;multi_bool])
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.validate()&nbsp;-&nbsp;SLOW
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.Account.getShardVersion()&nbsp;-&nbsp;only&nbsp;for&nbsp;use&nbsp;with&nbsp;sharding&nbsp;</pre><p>&nbsp;<br></p><p>查看全部表记录</p><pre id="leanote_ace_1479782012602_0" class="brush:sh ace-tomorrow">&gt;&nbsp;db.Account.find()
{&nbsp;"_id"&nbsp;:&nbsp;ObjectId("4df08553188e444d001a763a"),&nbsp;"AccountID"&nbsp;:&nbsp;1,&nbsp;"UserName"&nbsp;:&nbsp;"libing",&nbsp;"Password"&nbsp;:&nbsp;"1",&nbsp;"Age"&nbsp;:&nbsp;26,&nbsp;"Email"&nbsp;:&nbsp;"libing@126.com",&nbsp;"RegisterDate"&nbsp;:&nbsp;"2011-06-09&nbsp;16:31:25"&nbsp;}
{&nbsp;"_id"&nbsp;:&nbsp;ObjectId("4df08586188e444d001a763b"),&nbsp;"AccountID"&nbsp;:&nbsp;2,&nbsp;"UserName"&nbsp;:&nbsp;"lb",&nbsp;"Password"&nbsp;:&nbsp;"1",&nbsp;"Age"&nbsp;:&nbsp;25,&nbsp;"Email"&nbsp;:&nbsp;"libing@163.com",&nbsp;"RegisterDate"&nbsp;:&nbsp;"2011-06-09&nbsp;16:36:95"&nbsp;}</pre><p>&nbsp;<br></p></div>
</div>
<!-- 该js供其它处理 -->
<script src="../leanote-html.js"></script>
</body>
</html>