<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_心有多远 就能走多远～～</title><subtitle type="text">今天你Hi了吗 http://www.16hi.com</subtitle><id>http://feed.cnblogs.com/blog/u/26581/rss</id><updated>2011-12-21T02:27:48Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/26581/rss"/><entry><id>http://www.cnblogs.com/goooto/archive/2011/12/05/2277388.html</id><title type="text">UML 依赖 关联 聚合 组合</title><summary type="text">继承 指的是一个类（称为子类、子接口）继承另外的一个类（称为父类、父接口）的功能，并可以增加它自己的新功能的能力，继承是类与类或者接口与接口之间 最常见的关系；在Java中此类关系通过关键字extends明确标识，在设计时一般没有争议性； 实现 指的是一个class类实现interface接口（可以是多个）的功能；实现是类与接口之间最常见的关系；在Java中此类关系通过关键字 implements明确标识，在设计时一般没有争议性； 依赖 可以简单的理解，就是一个类A使用到了另一个类B，而这种使用关系是具有偶然性的、、临时性的、非常弱的，但是B类的变化会影响到A；比如某人要过 河，需要借用一..</summary><published>2011-12-05T15:57:00Z</published><updated>2011-12-05T15:57:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/12/05/2277388.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/12/05/2277388.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;继承&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;指的是一个类（称为子类、子接口）继承另外的一个类（称为父类、父接口）的功能，并可以增加它自己的新功能的能力，继承是类与类或者接口与接口之间 最常见的关系；在Java中此类关系通过关键字extends明确标识，在设计时一般没有争议性；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229039/95162fd8-871f-3562-ad3f-a1bb6721a2b6.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;实现&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;指的是一个class类实现interface接口（可以是多个）的功能；实现是类与接口之间最常见的关系；在Java中此类关系通过关键字 implements明确标识，在设计时一般没有争议性；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229041/65be60e6-d72d-38cd-bd26-451680401dc6.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;依赖&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;可以简单的理解，就是一个类A使用到了另一个类B，而这种使用关系是具有偶然性的、、临时性的、非常弱的，但是B类的变化会影响到A；比如某人要过 河，需要借用一条船，此时人与船之间的关系就是依赖；表现在代码层面，为类B作为参数被类A在某个method方法中使用；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229043/def007c1-78c4-3e4f-bc3c-b9c3904f52de.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;关联&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系，比如我和我的朋友；这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性 的，一般是长期性的，而且双方的关系一般是平等的、关联可以是单向、双向的；表现在代码层面，为被关联类B以类属性的形式出现在关联类A中，也可能是关联 类A引用了一个类型为被关联类B的全局变量；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229045/2bbf91ca-0cc5-32f0-b795-c754f75b1263.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;聚合&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;聚合是关联关系的一种特例，他体现的是整体与部分、拥有的关系，即has-a的关系，此时整体与部分之间是可分离的，他们可以具有各自的生命周期， 部分可以属于多个整体对象，也可以为多个整体对象共享；比如计算机与CPU、公司与员工的关系等；表现在代码层面，和关联关系是一致的，只能从语义级别来 区分；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229047/9f6443f3-80d9-3263-b49c-d0d665963941.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;组合&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;组合也是关联关系的一种特例，他体现的是一种contains-a的关系，这种关系比聚合更强，也称为强聚合；他同样体现整体与部分间的关系，但此 时整体与部分是不可分的，整体的生命周期结束也就意味着部分的生命周期结束；比如你和你的大脑；表现在代码层面，和关联关系是一致的，只能从语义级别来区 分；&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;img src="http://dl.iteye.com/upload/attachment/229049/81dae430-9990-36b5-bd10-2322de31e2aa.jpg" alt="" /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;对于继承、实现这两种关系没多少疑问，他们体现的是一种类与类、或者类与接口间的纵向关系；其他的四者关系则体现的是类与类、或者类与接口间的引 用、横向关系，是比较难区分的，有很多事物间的关系要想准备定位是很难的，前面也提到，这几种关系都是语义级别的，所以从代码层面并不能完全区分各种关 系；但总的来说，后几种关系所表现的强弱程度依次为：&lt;strong&gt;组合&amp;gt;聚合&amp;gt;关联&amp;gt;依赖&lt;/strong&gt; ；&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2277388.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/12/05/2277388.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/12/04/2275684.html</id><title type="text">亲属称谓</title><summary type="text">古代将凡血缘相近的同姓本族和异性外族都称作亲属。 祖：(王父、祖父)父之父。祖母、王母、父之母。(曾祖父、母)祖之父、母。(高祖父、母)曾祖之父、母。(上五世即从本位起，上及父、祖、曾祖、高祖)。 曾孙：孙之子。 玄孙：曾孙之子。 来孙：玄孙之子。(下五世指从本位起，下主立孙) 世父：(伯父)父之兄。 叔父：父之弟。 世母(伯母)：世父之妻。 叔母(婶)：叔父之妻。 姑(姑母)：父之姊妹。 姑父：姑之夫。 从祖祖父(伯祖父、叔祖父)：父之伯叔。 从祖祖母(伯祖母、叔祖母)：父之伯母、叔母。 从祖父(堂伯、堂叔)：父之从兄弟。 从祖母(堂伯母、堂叔母)：从祖父之妻。...</summary><published>2011-12-04T11:05:00Z</published><updated>2011-12-04T11:05:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/12/04/2275684.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/12/04/2275684.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: arial, 宋体, sans-serif; line-height: 24px; "&gt;古代将凡血缘相近的同姓本族和异性外族都称作亲属。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖：(王父、祖父)父之父。祖母、王母、父之母。(曾祖父、母)祖之父、母。(高祖父、母)曾祖之父、母。(上五世即从本位起，上及父、祖、曾祖、高祖)。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;曾孙：孙之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;玄孙：曾孙之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;来孙：玄孙之子。(下五世指从本位起，下主立孙)&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;世父：(伯父)父之兄。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔父：父之弟。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;世母(伯母)：世父之妻。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔母(婶)：叔父之妻。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑(姑母)：父之姊妹。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑父：姑之夫。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;a target="_blank" href="http://baike.baidu.com/view/633588.htm" style="text-decoration: underline; color: #136ec2; "&gt;从祖祖父&lt;/a&gt;(伯祖父、叔祖父)：父之伯叔。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从祖祖母(伯祖母、叔祖母)：父之伯母、叔母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从祖父(堂伯、堂叔)：父之从兄弟。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从祖母(堂伯母、堂叔母)：从祖父之妻。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;a target="_blank" href="http://baike.baidu.com/view/633593.htm" style="text-decoration: underline; color: #136ec2; "&gt;族曾祖父&lt;/a&gt;(族曾王父)：祖父的伯叔。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;族曾王母：祖父的伯叔之妻子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;族祖父(族祖王父)：族曾祖父之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;族父：族祖父之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;族兄弟：族父之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;嫂：兄之妻。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;弟妇：弟之妇。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从子(侄)：兄弟之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从女(侄女)：兄弟之女。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从孙：兄弟之孙。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;甥(外甥)：姊妹之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;私姊：妹之夫。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;女婿(子婿、婿)：女之夫。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;中表(姑表)：父之姊妹之子女。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外祖父(外王父)：母之父。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外祖母(外王母)：母之母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;a target="_blank" href="http://baike.baidu.com/view/624513.htm" style="text-decoration: underline; color: #136ec2; "&gt;外曾王父&lt;/a&gt;：外祖父之父。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;a target="_blank" href="http://baike.baidu.com/view/624512.htm" style="text-decoration: underline; color: #136ec2; "&gt;外曾王母&lt;/a&gt;：外祖父之母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅(舅父)：母之兄弟。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅母(妗子)：舅之妻。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从母(姨母、姨)：母之姊妹。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姨父：姨母之夫。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;中表(姨表)：姨之子女。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从母兄弟、从母姊妹(姑表&lt;a target="_blank" href="http://baike.baidu.com/view/3013800.htm" style="text-decoration: underline; color: #136ec2; "&gt;兄弟姊妹&lt;/a&gt;、姨表兄弟姊妹)：母之兄弟姊妹的子女。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外舅(岳父、岳丈、丈人、&lt;a target="_blank" href="http://baike.baidu.com/view/5464.htm" style="text-decoration: underline; color: #136ec2; "&gt;泰山&lt;/a&gt;、岳翁)： 妻之父。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外姑(岳母、丈母、泰水)：妻之母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姨(姨子)：妻之姊妹。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;妻侄：妻之兄弟之子。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅(嫜、公)：夫之父。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑（婆)：夫之母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑嫜、舅姑：即夫之父母(俗称公婆)。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯叔(大伯、大叔子)：夫之兄弟。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;小姑子：夫之妹。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;娣妇：夫之弟妇。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姒姆：夫之嫂。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;娣姒、妯娌：古之弟妇与嫂的简称。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;娅、连襟(襟兄、襟弟)、两乔两婿互称。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:2" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="2" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;1、祖辈&lt;/strong&gt;&lt;/p&gt;祖辈的亲属，按古代关于宗亲的范围，是从高祖开始。高祖以上的直系祖先则称为远祖、先祖、先人、鼻祖（鼻，始的意思）。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（1）祖：在古代，广义是指所有父辈以上的男性先辈，狭义则是指祖父。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）祖父：又称为&amp;#8220;王父&amp;#8221;、&amp;#8220;大父&amp;#8221;、&amp;#8220;祖君&amp;#8221;。在古代，&amp;#8220;公&amp;#8221;、&amp;#8220;太公&amp;#8221;、&amp;#8220;翁&amp;#8221;也可用来称呼祖父；如今对祖父最常见的称呼是&amp;#8220;爷爷&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）祖母：又可以称为&amp;#8220;大母&amp;#8221;、&amp;#8220;王母&amp;#8221;、 &amp;#8220;重慈&amp;#8221;。又因古人有妻有妾，所以祖母又有 &amp;#8220;季祖母&amp;#8221;、&amp;#8220;庶祖母&amp;#8221;、&amp;#8220;妾祖母&amp;#8221;之分。祖母之称古今通用。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）婆：是古代对成年妇女的很普遍的称呼，也可以用来称祖母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）奶奶：是今天对祖母的普遍称呼，古代的使用较晚。作为称谓，&amp;#8220;奶&amp;#8221;最早是作为乳母之称，以后又用以称母亲，又作为对以婚妇女的较广义的称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（6）堂祖父、从祖父、伯公、伯祖、伯翁、叔公、叔祖、叔翁等：这些是对祖父的兄弟的称谓。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（7）堂祖母、从祖母、伯婆、伯祖母、叔婆、叔祖母等：这些是对祖父兄弟妻子的称谓。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:3" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="3" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;2、曾祖辈&lt;/strong&gt;&lt;/p&gt;（1）曾祖：即祖父之父。古代还有&amp;#8220;太翁&amp;#8221;、&amp;#8220;曾翁&amp;#8221;、&amp;#8220;曾大父&amp;#8221;、&amp;#8220;大王父&amp;#8221;、&amp;#8220;王大父&amp;#8221;、&amp;#8220;太公&amp;#8221;、&amp;#8220;曾太公&amp;#8221;等称呼，比较特殊的是称&amp;#8220;曾门&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）曾祖母：指曾祖之妻，还可以称为&amp;#8220;太婆&amp;#8221;、&amp;#8220;曾祖王母&amp;#8221;、&amp;#8220;太奶&amp;#8221;，其中较常见的为&amp;#8220;太婆&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:4" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="4" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;3、高祖辈&lt;/strong&gt;&lt;/p&gt;（1）高祖：即曾祖之父，古今多称为高祖父，也有称为&amp;#8220;高祖王父&amp;#8221;、&amp;#8220;高门&amp;#8221;。但需注意的是，古代对高祖之上的历代远祖也可称为高祖。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）&lt;a target="_blank" href="http://baike.baidu.com/view/633579.htm" style="text-decoration: underline; color: #136ec2; "&gt;高祖母&lt;/a&gt;：指高祖之妻，或称&amp;#8220;高王祖母&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:5" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="5" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;4、父母&lt;/strong&gt;&lt;/p&gt;（1）父母：父母是亲属中最重要的亲属，除&amp;#8220;父母&amp;#8221;、&amp;#8220;双亲&amp;#8221;、&amp;#8220;二老&amp;#8221;、&amp;#8220;爹娘&amp;#8221;等古今通用的合称外还有&amp;#8220;高堂&amp;#8221;、&amp;#8220;&lt;a target="_blank" href="http://baike.baidu.com/view/468079.htm" style="text-decoration: underline; color: #136ec2; "&gt;严君&lt;/a&gt;&amp;#8221;、&amp;#8220;尊亲&amp;#8221;、&amp;#8220;严亲&amp;#8221;、&amp;#8220;两亲&amp;#8221;、&amp;#8220;亲闱&amp;#8221;等以及文人笔下的&amp;#8220;所生&amp;#8221;、&amp;#8220;椿萱&amp;#8221;等对父母的代称。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）父、父亲：是对父亲古今习见的称呼，还可以称父亲为&amp;#8220;公&amp;#8221;、&amp;#8220;翁&amp;#8221;、&amp;#8220;尊&amp;#8221;、&amp;#8220;大人&amp;#8221;、&amp;#8220;严君&amp;#8221;、&amp;#8220;爷&amp;#8221;、&amp;#8220;爹&amp;#8221;、&amp;#8220;爸&amp;#8221;、&amp;#8220;&lt;a target="_blank" href="http://baike.baidu.com/view/2237.htm" style="text-decoration: underline; color: #136ec2; "&gt;老子&lt;/a&gt;&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）尊：古代常见的敬称用语，称自己的父亲可称&amp;#8220;家尊&amp;#8221;，称对方的父亲则称&amp;#8220;令尊&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）爷：古代对成年男子较广义的称呼，宋代开始用作对祖父之称，&lt;a target="_blank" href="http://baike.baidu.com/view/469597.htm" style="text-decoration: underline; color: #136ec2; "&gt;魏晋南北朝&lt;/a&gt;就用作对父亲之称，或写作&amp;#8220;耶&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）母：是对母亲最常见的称呼。而在古代对母亲的称谓中，大都和&amp;#8220;母&amp;#8221;相似，又用作对成年妇女或老年妇女的泛称。其中较重要的有：&amp;#8220;婆&amp;#8221;、&amp;#8220;娘&amp;#8221;、&amp;#8220;娘娘&amp;#8221;、&amp;#8220;姥&amp;#8221;、&amp;#8220;大人&amp;#8221;、&amp;#8220;妈&amp;#8221;、&amp;#8220;慈&amp;#8221;、&amp;#8220;家家&amp;#8221;和&amp;#8220;姊姊&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（6）继母:如果自己的母亲去世、离异或被父辈逐出，则称续娶之妻为继母、继亲、后母、假母、续母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（7）出母:如果自己的母亲离家之后还能相见，则称为出母。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（8）生母：在古代一夫多妻制的家庭中，称自己的生身母亲为&amp;#8220;生母&amp;#8221;或 &amp;#8220;本生母&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（9）庶母：在古代一夫多妻制的家庭中，如果自己的生母是正妻，则称父亲之妾为&amp;#8220;庶母&amp;#8221;、&amp;#8220;少母&amp;#8221;、&amp;#8220;诸母&amp;#8221;、&amp;#8220;妾母&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（10）家家和姊姊:是中古时期对母亲的两种特殊称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（11）姨: 在古代一夫多妻制的家庭中，无论自己的生母是妻或妾，对父亲的妾都可以称为&amp;#8220;姨&amp;#8221;、&amp;#8220;姨姨&amp;#8221;、&amp;#8220;阿姨&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;( 12 )义父：指是在自己的父亲之外再拜认某人为父，这个&amp;#8220;义&amp;#8221;字有外加、假、代、自愿等意。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;( 13 )义母：指是在自己的母亲之外再拜认某人为母。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:6" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="6" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;5、与父亲相关的亲属?&lt;/strong&gt;&lt;/p&gt;（1）诸父、诸母：是对父亲的兄弟及其妻室的统称。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）世父：对父亲的兄弟的称谓，现在更多的场合是称&amp;#8220;伯父&amp;#8221;、&amp;#8220;叔父&amp;#8221;&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;或简称&amp;#8220;伯&amp;#8221;、&amp;#8220;叔&amp;#8221;。古人偶尔将几个叔父按伯、仲、叔、季的排行次序，分别称为&amp;#8220;伯父&amp;#8221;、&amp;#8220;仲父&amp;#8221;、&amp;#8220;叔父&amp;#8221;、&amp;#8220;季父&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）伯母、叔母：是对父亲的兄弟的妻室的称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）从父：对父亲的&lt;a target="_blank" href="http://baike.baidu.com/view/2870037.htm" style="text-decoration: underline; color: #136ec2; "&gt;叔伯兄弟&lt;/a&gt;可统称&amp;#8220;从父&amp;#8221;，又可分别称为&amp;#8220;从伯&amp;#8221;、&amp;#8220;从叔&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）姑：对父亲的姊妹可称为&amp;#8220;姑&amp;#8221;（沿用至今），又可以称为&amp;#8220;诸姑&amp;#8221;、&amp;#8220;姑姊&amp;#8221;、&amp;#8220;姑妹&amp;#8221;，对已婚者一般都称为&amp;#8220;姑母&amp;#8221;、&amp;#8220;姑妈&amp;#8221;，与今不同的是偶尔也称&amp;#8220;姑娘&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（6）姑父：对姑母的丈夫，既可称为&amp;#8220;姑父&amp;#8221;、&amp;#8220;姑丈&amp;#8221;，又可以称为&amp;#8220;姑婿&amp;#8221;、&amp;#8220;姑夫&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（7）表兄弟：对姑母的子的称谓。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（8）表姊妹：对姑母的女的称谓。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:7" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="7" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;6、与母亲相关的亲属&lt;/strong&gt;&lt;/p&gt;（1）外祖父：对母亲的父亲，称其为&amp;#8220;外祖父&amp;#8221;（与今同），又可称为&amp;#8220;外翁&amp;#8221;、&amp;#8220;外大人&amp;#8221;、&amp;#8220;家公&amp;#8221;、&amp;#8220;老爷&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）外祖母：对母亲的母亲，称为&amp;#8220;外祖母&amp;#8221;、&amp;#8220;外婆&amp;#8221;（与今同），又称为&amp;#8220;姥姥&amp;#8221;、&amp;#8220;老老&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）舅：对母亲的兄弟，古今均称&amp;#8220;舅&amp;#8221;，在不同场合，可加上一些修饰或补充性文字，如：&amp;#8220;舅氏&amp;#8221;、&amp;#8220;舅父&amp;#8221;、&amp;#8220;嫡舅&amp;#8221;、&amp;#8220;元舅&amp;#8221;、&amp;#8220;堂舅&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）舅母：对舅父之妻的称谓。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）姨母：对母亲姊妹的称呼，先秦时称为&amp;#8220;从母&amp;#8221;，&lt;a target="_blank" href="http://baike.baidu.com/view/104626.htm" style="text-decoration: underline; color: #136ec2; "&gt;秦汉&lt;/a&gt;以来则称为&amp;#8220;姨母&amp;#8221;，或称为&amp;#8220;姨娘&amp;#8221;、&amp;#8220;姨婆&amp;#8221;、&amp;#8220;姨妈&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（6）姨父：对姨母之夫称为&amp;#8220;姨夫&amp;#8221;或&amp;#8220;姨父&amp;#8221;。姨母之子女也称&amp;#8220;表兄弟&amp;#8221;、&amp;#8220;表姊妹&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（无论是舅父之女、姨母之女，还是姑母之女，都可以以&amp;#8220;表兄弟&amp;#8221;、&amp;#8220;表姊妹&amp;#8221;相称，古人统称为&amp;#8220;诸表&amp;#8221;。）&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:8" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="8" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;7、考妣&lt;/strong&gt;&lt;/p&gt;&amp;#8220;考&amp;#8221;和&amp;#8220;妣&amp;#8221;在先秦时是对父母的异称，无论生死均可用。秦汉以来，父母死后仍可称为考妣，但生前不再称考妣，考妣只用来对死去的父母之称。而且，考**不仅用来称死去的父母，死去的祖辈乃至更早的直系先辈均可用考妣相称（在先秦时则是对先祖的泛称）。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:9" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="9" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;8、夫妻&lt;/strong&gt;&lt;/p&gt;（1）夫：或作&amp;#8220;丈夫&amp;#8221;，本是对成年男子的美称，但又用作夫妻之夫。&amp;#8220;夫&amp;#8221;&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;加上其它附加成分的表示丈夫意的相关称谓很多 ，如：&amp;#8220;夫子&amp;#8221;、&amp;#8220;夫君&amp;#8221;、&amp;#8220;夫主&amp;#8221;、&amp;#8220;夫婿&amp;#8221;等。除此，还可以用&amp;#8220;良人&amp;#8221; 、&amp;#8220;郎&amp;#8221;、&amp;#8220;丈人&amp;#8221;、&amp;#8220;君&amp;#8221;、&amp;#8220;老公&amp;#8221;、&amp;#8220;官人&amp;#8221;、&amp;#8220;汉子&amp;#8221;等称呼丈夫。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）妻、妻子：是由古至今对妻的最主要的称呼。在妻之前加上各种附加成分，还有&amp;#8220;贤妻&amp;#8221;、&amp;#8220;良妻&amp;#8221;、&amp;#8220;仁妻&amp;#8221;、&amp;#8220;令妻&amp;#8221;、&amp;#8220;&lt;a target="_blank" href="http://baike.baidu.com/view/1218968.htm" style="text-decoration: underline; color: #136ec2; "&gt;娇妻&lt;/a&gt;&amp;#8221;等。除此，还可用&amp;#8220;妇&amp;#8221;、&amp;#8220;室&amp;#8221;、&amp;#8220;君&amp;#8221;、&amp;#8220;夫人&amp;#8221;、&amp;#8220;娘子&amp;#8221;、&amp;#8220;浑家&amp;#8221;、&amp;#8220;内&amp;#8221;、&amp;#8220;老婆&amp;#8221;、&amp;#8220;婆娘&amp;#8221;、&amp;#8220;太太&amp;#8221;等来称呼。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:10" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="10" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;9、与丈夫相关亲属&lt;/strong&gt;&lt;/p&gt;（1）公：也称公公，对丈夫之父，古称为&amp;#8220;舅&amp;#8221;，也称为&amp;#8220;公&amp;#8221;、&amp;#8220;公公 &amp;#8221;。这些称呼正是今天称丈夫之父为&amp;#8220;公&amp;#8221;、&amp;#8220;公公&amp;#8221;、&amp;#8220;老人公&amp;#8221;的前身。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）婆：也称婆婆，对丈夫之母，古称为&amp;#8220;姑&amp;#8221;以及由&amp;#8220;姑&amp;#8221;派生出的&amp;#8220;君姑&amp;#8221;、&amp;#8220;严姑&amp;#8221;、&amp;#8220;慈姑&amp;#8221;、&amp;#8220;阿姑&amp;#8221;等。后又称&amp;#8220;婆&amp;#8221;、&amp;#8220;婆婆&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）舅姑、姑舅：是早期对丈夫父母的合称。近者称&amp;#8220;公婆&amp;#8221;。此外还有一个常见的称呼是&amp;#8220;姑章&amp;#8221;，或作&amp;#8220;姑嫜&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）伯叔：对丈夫的兄弟的称谓，与近代所称的&amp;#8220;大伯&amp;#8221;、&amp;#8220;小叔&amp;#8221;是一致的。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）小姑：对丈夫妹妹的称谓。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:11" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="11" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;10、与妻子相关亲属&lt;/strong&gt;&lt;/p&gt;（1）岳丈：是对于妻子之父的称呼，古代还有&amp;#8220;泰山&amp;#8221;、&amp;#8220;冰翁&amp;#8221; 外舅&amp;#8221; &amp;#8220;外父&amp;#8221;、&amp;#8220;妻父&amp;#8221;等代称。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）岳母：对妻子之母的称谓，或称为&amp;#8220;丈母&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）姑、外姑：早期用来对妻子之母的称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）舅舅：对妻子兄弟的称呼，或称为&amp;#8220;舅&amp;#8221;、&amp;#8220;舅爷&amp;#8221;、&amp;#8220;舅子&amp;#8221;等，还称为&amp;#8220;内兄&amp;#8221;、&amp;#8220;内弟&amp;#8221;、&amp;#8220;妻兄&amp;#8221;、&amp;#8220;妻弟&amp;#8221;等。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）姨：对妻子的姊妹的称呼，或称&amp;#8220;大姨&amp;#8221;、&amp;#8220;小姨&amp;#8221;，也称为&amp;#8220;妻妹&amp;#8221;、&amp;#8220;内妹&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:12" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="12" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;11、兄弟及与其相关亲属&lt;/strong&gt;&lt;/p&gt;（1）兄：又称为&amp;#8220;昆&amp;#8221;。今天则可用&amp;#8220;哥&amp;#8221;来称呼兄长。有兄弟数人的情况下，称呼中必须表示出排行，或以数字为排行，或用伯、仲、叔、季这些排行常用语等。（&amp;#8220;哥&amp;#8221;，古代是用得十分广泛的称呼，可以称父、称兄、称弟、称子。）&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）嫂：对兄的妻子的称谓，或称&amp;#8220;嫂嫂&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）弟：是对与兄相对者的称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）弟媳：对弟的妻子的称谓，或称&amp;#8220;弟妹&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）侄：对兄弟的子女最常见的称呼，也可直接称之为&amp;#8220;兄子&amp;#8221;、&amp;#8220;兄女&amp;#8221;，或称为&amp;#8220;从子&amp;#8221;、&amp;#8220;从女&amp;#8221;、&amp;#8220;犹子&amp;#8221;、&amp;#8220;犹女&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:13" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="13" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;12、姊妹及与其相关亲属&lt;/strong&gt;&lt;/p&gt;（1）女兄、女弟：古代对姊妹的称谓，或直接称姊妹为兄弟。&amp;#8220;姊&amp;#8221;又称&amp;#8220;姐&amp;#8221;，与姊相对者称为&amp;#8220;妹&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）姊夫、妹夫：对姊妹的丈夫的称呼，也可称为&amp;#8220;姊婿&amp;#8221;、&amp;#8220;妹婿&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）甥：对姊妹之子最普遍的称呼，还称为&amp;#8220;外甥&amp;#8221;、&amp;#8220;甥女&amp;#8221;、&amp;#8220;外甥女&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:14" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="14" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;13、子女及与其相关亲属&lt;/strong&gt;&lt;/p&gt;（1）子：在古代是一个使用范围较广的称呼，秦汉以后主要用作儿子之称。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;自己之子可称为&amp;#8220;犬子&amp;#8221;、&amp;#8220;孽子&amp;#8221;、&amp;#8220;不孝子&amp;#8221;等，别人之子又可称为&amp;#8220;令子&amp;#8221;、&amp;#8220;&lt;a target="_blank" href="http://baike.baidu.com/view/2369609.htm" style="text-decoration: underline; color: #136ec2; "&gt;良子&lt;/a&gt;&amp;#8221;、&amp;#8220;不凡子&amp;#8221;、&amp;#8220;贤子&amp;#8221;等。除此，还可用&amp;#8220;男&amp;#8221;、&amp;#8220;子息&amp;#8221;、&amp;#8220;贱息&amp;#8221;、&amp;#8220;儿子&amp;#8221;、&amp;#8220;儿郎&amp;#8221;、&amp;#8220;儿男&amp;#8221;等来称呼子。若有几个儿子则有&amp;#8220;长子&amp;#8221;、&amp;#8220;次男&amp;#8221;、&amp;#8220;幼子&amp;#8221;等称呼。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（2）女：对女儿的主要称呼。对别人的女儿往往称为&amp;#8220;爱&amp;#8221;或&amp;#8220;嫒&amp;#8221;，也称为&amp;#8220;令嫒&amp;#8221;、&amp;#8220;闺嫒&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（3）义子、义女：指不是自己生育的，而是收养的子女，又称&amp;#8220;养子&amp;#8221;、&amp;#8220;养女&amp;#8221;、&amp;#8220;假子&amp;#8221;。同时还有一个常见的代称&amp;#8220;螟蛉&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（4）媳妇：对儿子之妻的称呼。最初只称为&amp;#8220;妇&amp;#8221;，后因儿子又称为&amp;#8220;息&amp;#8221;，所以子之妻又称为&amp;#8220;息妇&amp;#8221;，或写作&amp;#8220;媳妇&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（5）婿：对女儿丈夫的称呼，或称为&amp;#8220;女婿&amp;#8221;、&amp;#8220;子婿&amp;#8221;、&amp;#8220;郎婿&amp;#8221;、&amp;#8220;快婿&amp;#8221;等。除此，女儿之夫还可以被称为&amp;#8220;女夫&amp;#8221;、&amp;#8220;半子&amp;#8221;、&amp;#8220;东床&amp;#8221;&amp;#8220;令坦&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;女婿到了岳丈家，除了岳父、岳母可以称&amp;#8220;贤婿&amp;#8221;之类，岳家一般人都尊称其为&amp;#8220;姑爷&amp;#8221;、&amp;#8220;姑老爷&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（6）孙：对儿子的子女的称呼，或称&amp;#8220;孙息&amp;#8221;、&amp;#8220;&lt;a target="_blank" href="http://baike.baidu.com/view/213805.htm" style="text-decoration: underline; color: #136ec2; "&gt;孙枝&lt;/a&gt;&amp;#8221;。&amp;#8220;孙&amp;#8221;又分为&amp;#8220;孙儿&amp;#8221;、&amp;#8220;孙女&amp;#8221;，&amp;#8220;孙女&amp;#8221;又称为&amp;#8220;女孙&amp;#8221;。&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;（7）外孙：对女儿的子女的称呼。女姓还可称为&amp;#8220;外孙女&amp;#8221;。&lt;div style="height: 30px; line-height: 30px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span editable-title"="" data-edit-id="363375:363375:15" style="font-size: 12px; float: right; display: block; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #3366cc; font-weight: normal; "&gt;&lt;a href="http://baike.baidu.com/view/363375.htm#" style="text-decoration: underline; color: #136ec2; height: 15px; line-height: 16px; background-image: url(http://img.baidu.com/img/baike/s/edit.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: block; width: 52px; padding-left: 18px; background-position: 0% 50%; background-repeat: no-repeat no-repeat; "&gt;编辑本段&lt;/a&gt;&lt;/span&gt;&lt;a name="15" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;另附：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a name="15_1" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;一、家族长辈称谓&lt;/strong&gt;&lt;/p&gt;（前为称谓&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;后为自称）下同&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;曾祖父、母&amp;#8212;&amp;#8212;曾孙、孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太公翁（丈夫的曾祖父）&amp;#8212;&amp;#8212;曾孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太奶亲（丈夫的曾祖母）&amp;#8212;&amp;#8212;曾孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;曾伯父、母（父亲的祖父的哥哥、嫂嫂）&amp;#8212;&amp;#8212;曾侄孙、曾侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太伯翁、太姆婆（丈夫的曾伯父、母）&amp;#8212;&amp;#8212;曾侄孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;曾叔祖父、母（父亲的祖父的弟弟、弟媳）&amp;#8212;&amp;#8212;曾侄孙、曾侄孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太叔翁、太婶婆（丈夫的曾叔祖父、母）&amp;#8212;&amp;#8212;曾侄孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖父、祖母（父亲的父母）&amp;#8212;&amp;#8212;孙、孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖翁、婆（丈夫的祖父、祖母）&amp;#8212;&amp;#8212;孙媳妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯祖父、母（父亲的伯父、母）&amp;#8212;&amp;#8212;侄孙、侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯祖翁、婆（丈夫的伯祖父、母）&amp;#8212;&amp;#8212;曾孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔祖父、母（父亲的叔父、母）&amp;#8212;&amp;#8212;侄孙、侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔祖翁（丈夫的叔祖父）&amp;#8212;&amp;#8212;侄孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;婶婆（丈夫的叔祖母）&amp;#8212;&amp;#8212;侄孙媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;翁亲、姑亲（丈夫的父亲、母亲）&amp;#8212;&amp;#8212;儿媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯父、母（父亲的哥哥、嫂嫂）&amp;#8212;&amp;#8212;侄儿、侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯翁、母（丈夫的伯父、母）&amp;#8212;&amp;#8212;侄媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔父、母（父亲的弟弟、弟媳）&amp;#8212;&amp;#8212;侄、侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂伯、叔（同族与父同辈者）&amp;#8212;&amp;#8212;堂侄、堂侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;宗伯、叔（同姓与父同辈者）&amp;#8212;&amp;#8212;宗侄、宗侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔翁、婶亲（丈夫的叔父、叔母）&amp;#8212;&amp;#8212;侄媳&lt;p&gt;&lt;strong&gt;&lt;a name="15_2" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;二、亲戚长辈称谓&lt;/strong&gt;&lt;/p&gt;曾祖姑丈（曾祖父的姐妹父）&amp;#8212;&amp;#8212;内曾侄孙、内曾侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;曾祖姑母（曾祖父的姐妹）&amp;#8212;&amp;#8212;曾侄孙、曾侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖姑丈（祖父的姐妹父）&amp;#8212;&amp;#8212;内侄孙、内侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖姑母（祖父的姐妹）&amp;#8212;&amp;#8212;侄孙、侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅祖父（祖母的兄弟）&amp;#8212;&amp;#8212;外甥孙、外甥孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅祖母（祖母的兄弟的妻子）&amp;#8212;&amp;#8212;外甥孙、外甥孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖姨夫（祖母的姐妹父）&amp;#8212;&amp;#8212;姨甥孙、姨甥孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;祖姨母（祖母的姐妹）&amp;#8212;&amp;#8212;姨外甥、姨外甥女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑丈（父亲的姐妹父）&amp;#8212;&amp;#8212;内侄、内侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姑母（父亲的姐妹）&amp;#8212;&amp;#8212;侄、侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;表伯、姆（父亲的表兄、嫂）&amp;#8212;&amp;#8212;表侄、表侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太外祖父、母（母亲的祖父、母）&amp;#8212;&amp;#8212;外曾孙、外曾孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外祖父、母（母亲的父母）&amp;#8212;&amp;#8212;外孙、外孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外伯祖、外姆婆（母亲的伯父、母）&amp;#8212;&amp;#8212;外侄孙、外侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;外叔祖、外婶婆（母亲的叔父、叔母）&amp;#8212;&amp;#8212;外侄孙、外侄孙女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅父（母亲的兄弟）&amp;#8212;&amp;#8212;外甥、外甥女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;舅母（母亲的兄嫂、弟媳）&amp;#8212;&amp;#8212;外甥、外甥女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姨丈（母亲的姐妹父）&amp;#8212;&amp;#8212;姨甥、姨甥女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姨母（母亲的姐妹）&amp;#8212;&amp;#8212;襟侄、襟侄女&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太岳父、母（妻的祖父、母）&amp;#8212;&amp;#8212;孙婿、孙女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太伯岳、母（妻的伯祖父、母）&amp;#8212;&amp;#8212;侄孙婿、侄孙女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太叔岳、母（妻的叔祖父、母）&amp;#8212;&amp;#8212;侄孙婿、侄孙女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;岳父、母（妻的父母）&amp;#8212;&amp;#8212;女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;伯岳、母（妻的伯父、母）&amp;#8212;&amp;#8212;侄女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;叔岳、母（妻的叔父、母）&amp;#8212;&amp;#8212;侄女婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻伯丈、姆（妻的从伯父、母）&amp;#8212;&amp;#8212;姻家侄婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻叔丈、姻婶（妻的从叔父、母）&amp;#8212;&amp;#8212;姻家侄婿&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻伯、姆（妻的堂伯父、母）&amp;#8212;&amp;#8212;姻家侄&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻叔、姻婶（妻的堂叔父、母）&amp;#8212;&amp;#8212;姻家侄&lt;p&gt;&lt;strong&gt;&lt;a name="15_3" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;三：家族平辈称谓&lt;/strong&gt;&lt;/p&gt;胞哥（本人的哥哥）&amp;#8212;&amp;#8212;弟、妹&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;兄嫂（哥哥的爱人）&amp;#8212;&amp;#8212;夫弟、夫妹&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;弟妇（胞弟的爱人）&amp;#8212;&amp;#8212;夫兄、夫姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;胞姐、妹（本人的姐、妹）&amp;#8212;&amp;#8212;弟、妹、兄、姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;夫兄（丈夫的哥哥）&amp;#8212;&amp;#8212;弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;兄嫂（丈夫的嫂嫂）&amp;#8212;&amp;#8212;弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;夫弟（丈夫的弟弟）&amp;#8212;&amp;#8212;嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;弟妇（丈夫的弟媳）&amp;#8212;&amp;#8212;嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;爱妻（本人的妻子）&amp;#8212;&amp;#8212;夫&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;良人、夫君（本人的丈夫）&amp;#8212;&amp;#8212;拙荆、妻&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;夫姐（丈夫的胞姐）&amp;#8212;&amp;#8212;弟媳&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;夫妹（丈夫的胞妹）&amp;#8212;&amp;#8212;兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从兄、姐（伯、叔的女儿）&amp;#8212;&amp;#8212;从弟、妹&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从弟、妹（伯、叔的女儿）&amp;#8212;&amp;#8212;从兄、姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;夫从兄（丈夫的从兄）&amp;#8212;&amp;#8212;从弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从兄嫂（丈夫的从嫂）&amp;#8212;&amp;#8212;从弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从弟（丈夫的从弟）&amp;#8212;&amp;#8212;从兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;从弟妇（丈夫的从弟媳）&amp;#8212;&amp;#8212;从兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂兄（丈夫的堂兄）&amp;#8212;&amp;#8212;堂弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂嫂（丈夫的堂嫂）&amp;#8212;&amp;#8212;堂弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂弟（丈夫的堂弟）&amp;#8212;&amp;#8212;堂兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂小弟（丈夫的堂弟媳）&amp;#8212;&amp;#8212;堂兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;堂兄、堂姐、堂弟、堂妹（同族平辈者）&amp;#8212;&amp;#8212;堂弟、堂妹、堂兄、堂姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;宗兄、宗姐、&lt;a target="_blank" href="http://baike.baidu.com/view/4267983.htm" style="text-decoration: underline; color: #136ec2; "&gt;宗弟&lt;/a&gt;、宗妹（同姓平辈者）&amp;#8212;&amp;#8212;宗弟、宗妹、宗兄、宗姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姐丈（本人的胞姐夫）&amp;#8212;&amp;#8212;内弟、内弟妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;妹丈（本人的胞妹夫）&amp;#8212;&amp;#8212;内兄、内兄嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;表兄、表姐（姑、姨、妗的子、女）&amp;#8212;&amp;#8212;表弟、表妹&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;表弟、表妹（姑、姨、妗的子、女）&amp;#8212;&amp;#8212;表兄、表姐&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;表姐丈（姑母的女婿）&amp;#8212;&amp;#8212;表内弟、表妹&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;内兄、嫂（妻子的哥、嫂）&amp;#8212;&amp;#8212;内兄、嫂&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;内弟、媳（妻子的弟、媳）&amp;#8212;&amp;#8212;姐夫&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;襟兄（妻的姐、妹夫）&amp;#8212;&amp;#8212;襟弟&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻兄、弟（妻的从兄、弟）&amp;#8212;&amp;#8212;姻兄、弟&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻家兄、弟（妻的堂兄、弟）&amp;#8212;&amp;#8212;姻家兄、弟&lt;p&gt;&lt;strong&gt;&lt;a name="15_4" style="text-decoration: underline; color: rgb(19, 110, 194); "&gt;&lt;/a&gt;四：亲戚互称&lt;/strong&gt;&lt;/p&gt;老太姻翁、姆（亲家的祖父、母）&amp;#8212;&amp;#8212;姻再侄、姻再侄妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太姻翁（亲家的父亲）&amp;#8212;&amp;#8212;姻侄、姻侄妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;太姻姆（亲家的母亲）&amp;#8212;&amp;#8212;姻侄、姻侄妇&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻伯翁、叔翁（亲家的伯、叔父）&amp;#8212;&amp;#8212;姻家侄、姻家侄室&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻&lt;a target="_blank" href="http://baike.baidu.com/view/69187.htm" style="text-decoration: underline; color: #136ec2; "&gt;伯姆&lt;/a&gt;、叔母（亲家的伯、叔母）&amp;#8212;&amp;#8212;夫姻家侄&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻翁（亲家）&amp;#8212;&amp;#8212;姻弟&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻姆（亲家姆）&amp;#8212;&amp;#8212;姻室&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻兄（亲家的兄弟）&amp;#8212;&amp;#8212;姻家弟&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻仁兄（亲家姆的兄弟）&amp;#8212;&amp;#8212;姻家室&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻家兄（亲家的从、堂兄弟）&amp;#8212;&amp;#8212;姻家弟&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻侄（亲家的堂、侄儿）&amp;#8212;&amp;#8212;姻家伯、姻愚叔&lt;div style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;/div&gt;姻伯祖（兄弟妻的祖父）&amp;#8212;&amp;#8212;姻家再侄&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2275684.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/12/04/2275684.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/11/20/2255956.html</id><title type="text">以字节流上传文件</title><summary type="text">public string SaveFile(byte[] binData, string filePath, string fileName, int type, string fileType) { ///定义并实例化一个内存流，以存放提交上来的字节数组。 MemoryStream m = new MemoryStream(binData); FileStream fileStream = null; try { string savePath = System.Configuration.ConfigurationSettings.AppSettings["DcFilePath</summary><published>2011-11-20T04:06:00Z</published><updated>2011-11-20T04:06:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/11/20/2255956.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/11/20/2255956.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: verdana; font-size: 11.6667px; "&gt;&lt;p&gt;public string SaveFile(byte[] binData, string filePath, string fileName, int type, string fileType)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ///定义并实例化一个内存流，以存放提交上来的字节数组。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryStream m = new MemoryStream(binData);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileStream fileStream = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string savePath = System.Configuration.ConfigurationSettings.AppSettings["DcFilePath"];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //不是绝对路径&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (savePath.IndexOf(":\\") &amp;lt; 0) savePath = Server.MapPath(savePath);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //没有反斜杠&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!savePath.EndsWith("\\")) savePath += "\\";&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //目录&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; savePath += filePath;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //没有文件夹，创建文件夹&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Directory.Exists(savePath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directory.CreateDirectory(savePath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (type == 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileName = "\\" + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!File.Exists(savePath + fileName + fileType))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileName = "\\" + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileName = fileName + fileType;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //写文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileStream = new FileStream(savePath + fileName, FileMode.Create);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.WriteTo(fileStream);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StreamWriter sw=new StreamWriter(savePath+".txt");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.WriteLine(binData.Length.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "filePath.Replace("\\", "/") + fileName.Replace("\\", "/");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "上传文件出错|1";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fileStream.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;有时候下面的函数会报错,也不知道什么原因.&amp;nbsp;&amp;nbsp; 还是用上传控件自带的转换.&lt;/p&gt;&lt;p&gt;#region 将文件转化成2进制流 ConvertFileStreamToByteBuffer&lt;br /&gt;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; /// &amp;lt;param name="filename"&amp;gt;&amp;lt;/param&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; public byte[] getBinaryFile(string filename)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (File.Exists(filename))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileStream s = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //打开现有文件以进行读取。&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = File.OpenRead(filename);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.ConvertStreamToByteBuffer(s);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new byte[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new byte[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; #endregion&lt;/p&gt;&lt;p&gt;&amp;nbsp; #region 将流文件转化成2进制字节数组Convert FileStream Into Byte&lt;br /&gt;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; /// &amp;lt;param name="theStream"&amp;gt;&amp;lt;/param&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; public byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryStream tempStream = new System.IO.MemoryStream();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((b1 = theStream.ReadByte()) != -1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempStream.WriteByte(((byte)b1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return tempStream.ToArray();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new byte[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempStream.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; #endregion&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2255956.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/11/20/2255956.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/09/18/2180693.html</id><title type="text">C#命名规范(微软官方版)</title><summary type="text">使用以下三命名法来标示字符Pascal case标识符和每个后续的串连词的第一个字母都是大写；三个或更多字符的情况下可以使用Pascal命名法。 For example:BackColorCamel case（骆驼式命名法）标识符的第一个字母是小写字母和第一个字母后面连接的每个单词的首字母都大写。 For example:backColorUpper case（大写命名）标识符中的所有字母都大写。本公约只使用标识符构成的2个或更少的字母。For example: System.IOSystem.Web.UI你也可能利用标识符保持兼容现有的象征，托管方案，所有字符大写通常用于枚举和常数的值...</summary><published>2011-09-18T13:41:00Z</published><updated>2011-09-18T13:41:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/09/18/2180693.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/09/18/2180693.html"/><content type="html">&lt;div&gt;&lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt; font-family:宋体;"&gt;使用以下三命名法来标示字符&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt; font-family:宋体;"&gt;Pascal case&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;color:#6D6D6D"&gt;标识符和每个后续的串连词的第一个字母都是大写；三个或更多字符的情况下可以使用&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:12.0pt; font-family:宋体;"&gt;命名法。&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 宋体; line-height: 24px; font-size: 15.8333px; "&gt;For example:BackColor&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Camel case&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;（&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;骆驼式命名法&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family: 宋体;"&gt;）&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p&gt;标识符的第一个字母是小写字母和第一个字母后面连接的每个单词的首字母都大写。&lt;/p&gt;  &lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 宋体; line-height: 24px; font-size: 15.8333px; "&gt;For example:backColor&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Upper case&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;（大写命名）&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;标识符中的所有字母都大写。本公约只使用标识符构成的2个或更少的字母。&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;For example:&lt;/span&gt;&lt;/p&gt;  &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;System.IO&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: 宋体; line-height: 24px; font-size: 15.8333px; "&gt;System.Web.UI&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;你也可能利用标识符保持兼容现有的象征，托管方案，所有字符&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;大写&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;&lt;span class="Apple-style-span" style="font-size: 11.8056px; "&gt;通常用于枚举和常数的值。一般来说，这些符号应该是不可见的外部组件使用他们的。&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;下表总结了大写规则，并提供不同类型的标识符的例子。&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;table border="0" cellpadding="0" width="100%" style="width:100.0%;"&gt;  &lt;tbody&gt;&lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Identifier&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Case&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Example&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Class&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;AppDomain&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Enum type&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;ErrorLevel&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Enum values&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;FatalError&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Event&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;ValueChange&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Exception class&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;WebException&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:12.0pt;   font-family:宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   Always ends with the suffix &lt;strong&gt;Exception&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Read-only Static field&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;RedValue&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Interface&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;IDisposable&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:12.0pt;   font-family:宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   Always begins with the prefix I.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Method&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;ToString&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Namespace&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;System.Drawing&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Parameter&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Camel&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;typeName&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Property&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;BackColor&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Protected instance field&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Camel&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;redValue&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:12.0pt;   font-family:宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   Rarely used. A property is preferable to using a protected instance field.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td width="32%" valign="top" style="width:32.08%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Public instance field&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="16%" valign="top" style="width:16.54%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Pascal&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="49%" valign="top" style="width:49.96%;padding:.75pt .75pt .75pt .75pt"&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;RedValue&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;   &lt;p align="left" style="text-align:left;"&gt;&lt;strong&gt;&lt;span style="font-size:12.0pt;font-family:宋体;"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size:12.0pt;   font-family:宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;   Rarely used. A property is preferable to using a public instance field.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-size: 14.1667px; "&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2180693.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/09/18/2180693.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038185.html</id><title type="text">MongoDB学习笔记(六) MongoDB索引用法和效率分析（转）</title><summary type="text">MongoDB中的索引其实类似于关系型数据库，都是为了提高查询和排序的效率的，并且实现原理也基本一致。由于集合中的键(字段)可以是普通数据 类型，也可以是子文档。MongoDB可以在各种类型的键上创建索引。下面分别讲解各种类型的索引的创建，查询，以及索引的维护等。 一、创建索引 1. 默认索引 MongoDB有个默认的“_id”的键，他相当于“主键”的角色。集合创建后系统会自动创建一个索引在“_id”键上，它是默认索引，索引名叫“_id_”，是无法被删除的。我们可以通过以下方式查看： 1var _idIndex = mongoCollection.Metadata.Indexes.Single</summary><published>2011-05-05T11:29:00Z</published><updated>2011-05-05T11:29:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038185.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038185.html"/><content type="html">&lt;div&gt;MongoDB中的索引其实类似于关系型数据库，都是为了提高查询和排序的效率的，并且实现原理也基本一致。由于集合中的键(字段)可以是普通数据 类型，也可以是子文档。MongoDB可以在各种类型的键上创建索引。下面分别讲解各种类型的索引的创建，查询，以及索引的维护等。 &lt;p&gt;&lt;strong&gt;一、创建索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt; 1. 默认索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;MongoDB有个默认的&amp;#8220;_id&amp;#8221;的键，他相当于&amp;#8220;主键&amp;#8221;的角色。集合创建后系统会自动创建一个索引在&amp;#8220;_id&amp;#8221;键上，它是默认索引，索引名叫&amp;#8220;_id_&amp;#8221;，是无法被删除的。我们可以通过以下方式查看：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_675158"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;var _idIndex = mongoCollection.Metadata.Indexes.Single(x =&amp;gt; x.Key == &lt;/code&gt;&lt;code&gt;"_id_"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;Console.WriteLine(_idIndex);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 2. 单列索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;在单个键上创建的索引就是单列索引，例如我们要在&amp;#8220;UserInfo&amp;#8221;集合上给&amp;#8220;UserName&amp;#8221;键创建一个单列索引，语法如下：（1表示正序，-1逆序）&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_303067"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;, 1 } }, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;接着，我们用同样方法查找名为&amp;#8220;_UserName_&amp;#8221;的索引&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_120849"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;var _UserName_Index = mongoCollection.Metadata.Indexes.Single(x =&amp;gt; x.Key == &lt;/code&gt;&lt;code&gt;"_UserName_"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;Console.WriteLine(_UserName_Index);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 3.组合索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;另外，我们还可以同时对多个键创建组合索引。如下代码创建了按照&amp;#8220;UserId&amp;#8221;正序，&amp;#8220;UserName&amp;#8221;逆序的组合索引:&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_891888"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;, 1 }, { &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;, -1 } }, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 4.子文档索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;我们可以对文档类型的键创建各种索引，例如单列索引，如下创建用户详细信息&amp;#8220;Detail&amp;#8221;的单列索引：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_809270"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"Detail"&lt;/code&gt;&lt;code&gt;, 1 } }, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;对子文档的键创建组合索引：例如在&amp;#8220;Detail.Address&amp;#8221;和&amp;#8220;Detail.Age&amp;#8221;上创建组合索引：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_695057"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"Detail.Address"&lt;/code&gt;&lt;code&gt;, 1 }, { &lt;/code&gt;&lt;code&gt;"Detail.Age"&lt;/code&gt;&lt;code&gt;, -1 } }, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 5.唯一索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;唯一索引限制了对当前键添加值时，不能添加重复的信息。值得注意的是，当文档不存在指定键时，会被认为键值是&amp;#8220;null&amp;#8221;，所以&amp;#8220;null&amp;#8221;也会被认为是重复的，所以一般被作为唯一索引的键，最好都要有键值对。&lt;/p&gt; &lt;p&gt;对&amp;#8220;UserId&amp;#8221;创建唯一索引(这时候最后一个参数为&amp;#8220;true&amp;#8221;)：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_768335"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;, 1 } }, &lt;/code&gt;&lt;code&gt;true&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;二、维护索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt; 1. 查询索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;通过索引名查询的方式已有介绍。但有时候，我们可能忘记了索引名，怎么查询呢？&lt;/p&gt; &lt;p&gt;下面提供一个遍历全部索引的方法，打印全部索引信息：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_693547"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;foreach&lt;/code&gt; &lt;code&gt;(var index &lt;/code&gt;&lt;code&gt;in&lt;/code&gt; &lt;code&gt;mongoCollection.Metadata.Indexes)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(index.Value);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;输出结果示例：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_442299"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_id_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: 1 } }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_UserId_unique_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: 1 }, &lt;/code&gt;&lt;code&gt;"unique"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;true&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d8f406ab8a4730b78000005"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_UserName_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: 1 }, &lt;/code&gt;&lt;code&gt;"unique"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d8f406ab8a4730b78000006"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_Detail.Address_Detail.Age_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"Detail.Address"&lt;/code&gt;&lt;code&gt;: 1, &lt;/code&gt;&lt;code&gt;"Detail.Age"&lt;/code&gt;&lt;code&gt;: -1 }, &lt;/code&gt;&lt;code&gt;"unique"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d8f406ab8a4730b78000007"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_UserId_UserName_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: 1, &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: -1 }, &lt;/code&gt;&lt;code&gt;"unique"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d8f406ab8a4730b78000008"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"_Detail_"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ns"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"myDatabase.UserInfo"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"key"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"Detail"&lt;/code&gt;&lt;code&gt;: 1 }, &lt;/code&gt;&lt;code&gt;"unique"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d8f406ab8a4730b78000009"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;可见，集合的索引也是通过一个集合来维护的。name表示索引名，ns表示索引属于哪个库哪个集合，key表示索引在哪个键上，正序还是逆序，unique表示是否为唯一索引，等等...&lt;/p&gt; &lt;p&gt;&lt;strong&gt; 2. 删除索引&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;新手常陷入的误区是，认为集合被删除，索引就不存在了。关系型数据库中，表被删除了，索引也不会存在。在MongoDB中不存在删除集合的说法，就算集合数据清空，索引都是还在的，要移除索引还需要手工删除。&lt;/p&gt; &lt;p&gt;例如，删除名为&amp;#8220;_UserName_&amp;#8221;的索引：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_646878"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;mongoCollection.Metadata.DropIndex(&lt;/code&gt;&lt;code&gt;"_UserName_"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;div&gt;下面提供删除除默认索引外其他全部索引的方法:&lt;/div&gt; &lt;div&gt; &lt;div&gt; &lt;div id="highlighter_643661"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;DropAllIndex()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;var listIndexes = mongoCollection.Metadata.Indexes.ToList();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;for&lt;/code&gt; &lt;code&gt;(&lt;/code&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;i = 0; i &amp;lt; listIndexes.Count; i++)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;if&lt;/code&gt; &lt;code&gt;(listIndexes[i].Key != &lt;/code&gt;&lt;code&gt;"_id_"&lt;/code&gt;&lt;code&gt;)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Metadata.DropIndex(listIndexes[i].Key);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;三、索引的效率&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;MongoDB的索引到底能不能提高查询效率呢？我们在这里通过一个例子来测试。比较同样的数据在无索引和有索引的情况下的查询速度。&lt;/p&gt; &lt;p&gt;首先，我们通过这样一个方法插入10W条数据:&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_74140"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;InsertBigData()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;var random = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Random();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;for&lt;/code&gt; &lt;code&gt;(&lt;/code&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;i = 1; i &amp;lt; 100000; i++)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Document doc = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"ID"&lt;/code&gt;&lt;code&gt;] = i;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"Data"&lt;/code&gt;&lt;code&gt;] = &lt;/code&gt;&lt;code&gt;"data"&lt;/code&gt; &lt;code&gt;+ random.Next(100000);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Save(doc);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(&lt;/code&gt;&lt;code&gt;"当前有"&lt;/code&gt; &lt;code&gt;+ mongoCollection.FindAll().Documents.Count() + &lt;/code&gt;&lt;code&gt;"条数据"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;然后，实现一个方法用来创建索引:&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_647836"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;CreateIndexForData()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Metadata.CreateIndex(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"Data"&lt;/code&gt;&lt;code&gt;, 1 } }, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;　还有排序的方法：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_91812"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;SortForData()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.FindAll().Sort(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"Data"&lt;/code&gt;&lt;code&gt;, 1 } });&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;　运行测试代码如下:&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_738589"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;static&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;Main(&lt;/code&gt;&lt;code&gt;string&lt;/code&gt;&lt;code&gt;[] args)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;IndexBLL indexBll = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;IndexBLL();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;indexBll.DropAllIndex();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;indexBll.DeleteAll();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;indexBll.InsertBigData();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Stopwatch watch1 = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Stopwatch();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;watch1.Start();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;for&lt;/code&gt; &lt;code&gt;(&lt;/code&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;i = 0; i &amp;lt; 1; i++) indexBll.SortForData();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(&lt;/code&gt;&lt;code&gt;"无索引排序执行时间："&lt;/code&gt; &lt;code&gt;+ watch1.Elapsed);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;indexBll.CreateIndexForData();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Stopwatch watch2 = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Stopwatch();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;watch2.Start();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;for&lt;/code&gt; &lt;code&gt;(&lt;/code&gt;&lt;code&gt;int&lt;/code&gt; &lt;code&gt;i = 0; i &amp;lt; 1; i++) indexBll.SortForData();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(&lt;/code&gt;&lt;code&gt;"有索引排序执行时间："&lt;/code&gt; &lt;code&gt;+ watch2.Elapsed);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;最后执行程序查看结果：&lt;/p&gt; &lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/99414/2011032722592050.jpg"  alt="" /&gt;&lt;/p&gt; &lt;p&gt;多次测试表明在有索引的情况下，查询效率要高于无索引的效率。&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;原文出处：&lt;div&gt;http://www.cnblogs.com/lipan/archive/2011/03/28/1997202.html&lt;/div&gt; &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038185.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038185.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038182.html</id><title type="text">MongoDB学习笔记(五) MongoDB文件存取操作（转）</title><summary type="text">由于MongoDB的文档结构为BJSON格式（BJSON全称：Binary JSON），而BJSON格式本身就支持保存二进制格式的数据，因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个 BJSON的最大长度不能超过4M，所以限制了单个文档中能存入的最大文件不能超过4M。为了提供对大容量文件存取的支持，samus驱动提供了 “GridFS”方式来支持，“GridFS”方式文件操作需要引入新的程序集“MongoDB.GridFS.dll”。下面我们分别用两种方式来实 现。 一、在文档对象中存取文件 当文件大小较小的时候，直接存入文档对象实现起来更简洁。比如大量图片</summary><published>2011-05-05T11:27:00Z</published><updated>2011-05-05T11:27:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038182.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038182.html"/><content type="html">&lt;div&gt;由于MongoDB的文档结构为BJSON格式（BJSON全称：Binary  JSON），而BJSON格式本身就支持保存二进制格式的数据，因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。但是由于一个 BJSON的最大长度不能超过4M，所以限制了单个文档中能存入的最大文件不能超过4M。为了提供对大容量文件存取的支持，samus驱动提供了 &amp;#8220;GridFS&amp;#8221;方式来支持，&amp;#8220;GridFS&amp;#8221;方式文件操作需要引入新的程序集&amp;#8220;MongoDB.GridFS.dll&amp;#8221;。下面我们分别用两种方式来实 现。 &lt;p&gt;&lt;strong&gt;一、在文档对象中存取文件&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;当文件大小较小的时候，直接存入文档对象实现起来更简洁。比如大量图片文件的存取等，一般图片文件都不会超过4M。我们先实现一个上传图片存入数据库，再取出来写回页面的例子：&lt;/p&gt; &lt;p&gt; 1. 把图片存到BJSON中&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_788104"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 把图片存到BJSON中&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;SaveImgBJSON(&lt;/code&gt;&lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] byteImg)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Document doc = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"ID"&lt;/code&gt;&lt;code&gt;] = 1;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"Img"&lt;/code&gt;&lt;code&gt;] = byteImg;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Save(doc);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt; 2. 获取BJSON方式存储的图片字节数据&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_546238"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 获取BJSON方式存储的图片字节数据&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] GetImgBJSON()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Document doc=&amp;nbsp; mongoCollection.FindOne(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"ID"&lt;/code&gt;&lt;code&gt;, 1 } });&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"Img"&lt;/code&gt;&lt;code&gt;] &lt;/code&gt;&lt;code&gt;as&lt;/code&gt; &lt;code&gt;Binary;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;8&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;上面两段代码是在对MongoDB相关操作进行BLL封装类中添加的两个方法，封装方式查看上节内容。下面看看在webform中如何调用：&lt;/p&gt; &lt;p&gt;在界面拖出一个FileUpload控件和一个Button控件，页面cs类加如下方法：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_699134"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;protected&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;Button1_Click(&lt;/code&gt;&lt;code&gt;object&lt;/code&gt; &lt;code&gt;sender, EventArgs e)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;ImgBLL imgBll = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;ImgBLL();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;imgBll.DeleteAll();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;imgBll.SaveImgBJSON(FileUpload1.FileBytes);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Response.BinaryWrite(imgBll.GetImgBJSON());&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;二、用GridFS方式存取文件&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;在实现GridFS方式前我先讲讲它的原理，为什么可以存大文件。驱动首先会在当前数据库创建两个集合："fs.files" 和"fs.chunks"集合，前者记录了文件名，文件创建时间，文件类型等基本信息；后者分块存储了文件的二进制数据（并支持加密这些二进制数据）。分 块的意思是把文件按照指定大小分割，然后存入多个文档中。"fs.files"怎么知道它对应的文件二进制数据在哪些块呢？那是因为 在"fs.chunks"中有个"files_id"键，它对应"fs.files"的"_id"。"fs.chunks"还有一个键(int 型)"n"，它表明这些块的先后顺序。这两个集合名中的"fs"也是可以通过参数自定义的。&lt;/p&gt; &lt;p&gt;如果你只是想知道怎么用，可以忽略上面这段话，下面将用法：&lt;/p&gt; &lt;p&gt; 1. GridFS方式的文件新建，读取，删除&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_279475"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;GridFsSave(&lt;/code&gt;&lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] byteFile)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;filename = Guid.NewGuid().ToString();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;//这里GridFile构造函数有个重载，bucket参数就是用来替换那个创建集合名中默认的"fs"的。&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;GridFile gridFile = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;GridFile(mongoDatabase);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;using&lt;/code&gt; &lt;code&gt;(GridFileStream gridFileStream = gridFile.Create(filename))&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;gridFileStream.Write(byteFile, 0, byteFile.Length);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;filename;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] GridFsRead(&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;filename)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;GridFile gridFile = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;GridFile(mongoDatabase);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;GridFileStream gridFileStream = gridFile.OpenRead(filename);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] bytes = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[gridFileStream.Length];&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;gridFileStream.Read(bytes, 0, bytes.Length);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;bytes;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;GridFsDelete(&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;filename)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;GridFile gridFile = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;GridFile(mongoDatabase);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;gridFile.Delete(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document(&lt;/code&gt;&lt;code&gt;"filename"&lt;/code&gt;&lt;code&gt;, filename));&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt; 2. 再次封装GridFS操作，新文档只存储文件名称，相当于只是一个键，新文档还可以有除&amp;#8220;文件名&amp;#8221;之外其他的键。&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_526846"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 把图片存到GridFS中&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;SaveImgGridFS(&lt;/code&gt;&lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] byteImg)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;filename = GridFsSave(byteImg);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Document doc = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"ID"&lt;/code&gt;&lt;code&gt;] = 1;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;doc[&lt;/code&gt;&lt;code&gt;"filename"&lt;/code&gt;&lt;code&gt;] = filename;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Save(doc);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 获取GridFS方式存储的图片&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;byte&lt;/code&gt;&lt;code&gt;[] GetImgGridFS()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Document doc = mongoCollection.FindOne(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"ID"&lt;/code&gt;&lt;code&gt;, 1 } });&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;filename = doc[&lt;/code&gt;&lt;code&gt;"filename"&lt;/code&gt;&lt;code&gt;].ToString();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;GridFsRead(filename);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;三、小结&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;文件存取应该不是很难，值得注意的地方是：用第一种方式从文档中读出二进制数据时，一定要将类型转换为&amp;#8220;Binary&amp;#8221;类型；还有系统自带的键&amp;#8220;_id&amp;#8221;，它也不是string类型，是&amp;#8220;Oid&amp;#8221;类型的。&lt;/p&gt;&lt;/div&gt;原文出处：&lt;div&gt;http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038182.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038182.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038168.html</id><title type="text">MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系（转）</title><summary type="text">MongoDB的集合（collection）可以看做关系型数据库的表，文档对象（document）可以看做关系型数据库的一条记录。但两者并 不完全对等。表的结构是固定的，MongoDB集合并没有这个约束；另外，存入集合的文档对象甚至可以嵌入子文档，或者“子集合”。他们最终都可以用类似 于BJSON的格式描述。我们今天就来分析MongoDB这一特性带来的独特数据管理方式。我们还是以samus驱动为例来分析，samus驱动支持两种 方式访问数据库，基本方式和linq方式，基本方式在上篇以介绍过，linq方式我不想单独讲解应用实例，这篇我会用两种方式来对比介绍。 一、包含子文档的集合操作 有这么一个</summary><published>2011-05-05T10:58:00Z</published><updated>2011-05-05T10:58:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038168.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038168.html"/><content type="html">&lt;div&gt;MongoDB的集合（collection）可以看做关系型数据库的表，文档对象（document）可以看做关系型数据库的一条记录。但两者并 不完全对等。表的结构是固定的，MongoDB集合并没有这个约束；另外，存入集合的文档对象甚至可以嵌入子文档，或者&amp;#8220;子集合&amp;#8221;。他们最终都可以用类似 于BJSON的格式描述。我们今天就来分析MongoDB这一特性带来的独特数据管理方式。我们还是以samus驱动为例来分析，samus驱动支持两种 方式访问数据库，基本方式和linq方式，基本方式在上篇以介绍过，linq方式我不想单独讲解应用实例，这篇我会用两种方式来对比介绍。 &lt;p&gt;&lt;strong&gt;一、包含子文档的集合操作&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;有这么一个应用场景，某网站提供会员登录的功能，用户需要注册账号才能享受会员服务，但是注册者可能会因为用户资料表单输入项过大而放弃填写，因此用户信息分为主要资料和详细资料两项，初次注册只需要填写主要资料就行了。我们打算把详细信息设计为子文档存储。&lt;/p&gt; &lt;p&gt;&lt;strong&gt; 1) linq方式实现&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. 新建数据描述类，描述用户信息&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_640152"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 用户主要资料&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;class&lt;/code&gt; &lt;code&gt;UserInfo&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;UserId { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;UserName { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;PassWord { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;Detail Detail { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 用户详细资料&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;class&lt;/code&gt; &lt;code&gt;Detail&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;Address { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;int&lt;/code&gt; &lt;code&gt;Age { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;Email { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;2. 我们要新建一个用户业务操作类&amp;#8220;UserBLL&amp;#8221;。这个时候要让驱动知道UserInfo类描述了&amp;#8220;用户资料&amp;#8221;的字段信息，在GetMongo()方法实现了配置步骤，UserBLL完整代码如下：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_599928"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;class&lt;/code&gt; &lt;code&gt;UserBLL&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;connectionString = &lt;/code&gt;&lt;code&gt;"&lt;a href="mongodb://localhost"&gt;mongodb://localhost&lt;/a&gt;"&lt;/code&gt;&lt;code&gt;;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;databaseName = &lt;/code&gt;&lt;code&gt;"myDatabase"&lt;/code&gt;&lt;code&gt;;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;Mongo mongo;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;MongoDatabase mongoDatabase;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;//注意这里泛型类型为&amp;#8220;UserInfo&amp;#8221;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;MongoCollection&amp;lt;UserInfo&amp;gt; mongoCollection;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;UserBLL()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongo = GetMongo();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoDatabase = mongo.GetDatabase(databaseName) &lt;/code&gt;&lt;code&gt;as&lt;/code&gt; &lt;code&gt;MongoDatabase;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection = mongoDatabase.GetCollection&amp;lt;UserInfo&amp;gt;() &lt;/code&gt;&lt;code&gt;as&lt;/code&gt; &lt;code&gt;MongoCollection&amp;lt;UserInfo&amp;gt;;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongo.Connect();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;18&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;19&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;~UserBLL()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;20&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;21&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongo.Disconnect();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;22&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;23&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;24&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;25&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;/// 配置Mongo,将类UserInfo映射到集合&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;26&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;27&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;private&lt;/code&gt; &lt;code&gt;Mongo GetMongo()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;28&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;29&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;var config = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;MongoConfigurationBuilder();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;30&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;config.Mapping(mapping =&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;31&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;32&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mapping.DefaultProfile(profile =&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;33&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;34&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;profile.SubClassesAre(t =&amp;gt; t.IsSubclassOf(&lt;/code&gt;&lt;code&gt;typeof&lt;/code&gt;&lt;code&gt;(UserInfo)));&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;35&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;});&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;36&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mapping.Map&amp;lt;UserInfo&amp;gt;();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;37&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;});&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;38&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;config.ConnectionString(connectionString);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;39&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;new&lt;/code&gt; &lt;code&gt;Mongo(config.BuildConfiguration());&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;40&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;41&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;3. 接着，在&amp;#8220;UserBLL&amp;#8221;类中定义一个方法&amp;#8220;InsertSomeData()&amp;#8221;来插入一些数据：&lt;/p&gt; &lt;div&gt; &lt;div collapsed="" id="highlighter_384435"&gt;&lt;div&gt;&lt;div&gt;&lt;a expandsource="" style="width: 16px; height: 16px;" title="show source" href="http://www.cnblogs.com/lipan/archive/2011/03/17/1986616.html#expandSource"&gt;show source&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;4. 定义一个查找数据的方法&amp;#8220;Select&amp;#8221;，它将查找用户详细信息中，地址在湖北的全部用户：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_981030"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 查询详细资料地址为湖北的用户信息&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;List&amp;lt;UserInfo&amp;gt; Select()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;mongoCollection.Linq().Where(x =&amp;gt; x.Detail.Address == &lt;/code&gt;&lt;code&gt;"湖北"&lt;/code&gt;&lt;code&gt;).ToList();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;5. 还定义一个删除数据的方法，将删除集合全部数据：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_963354"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 删除全部用户信息&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;DeleteAll()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;mongoCollection.Remove(x =&amp;gt; &lt;/code&gt;&lt;code&gt;true&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;6. 在Main方法中添加如下代码：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_516234"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;static&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;Main(&lt;/code&gt;&lt;code&gt;string&lt;/code&gt;&lt;code&gt;[] args)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;UserBLL userBll = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;UserBLL();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;userBll.InsertSomeData();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;var users = userBll.Select();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;foreach&lt;/code&gt; &lt;code&gt;(var user &lt;/code&gt;&lt;code&gt;in&lt;/code&gt; &lt;code&gt;users)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(user.UserName + &lt;/code&gt;&lt;code&gt;"是湖北人"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;};&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;userBll.DeleteAll();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;7. 最后执行程序，打印如下信息：&lt;/p&gt; &lt;div&gt; &lt;div nogutter="" id="highlighter_831410"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;李四是湖北人&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;赵六是湖北人&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 1) 普通实现&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;普通方式实现不想多讲，直接贴代码，看看与linq方式有什么区别：&lt;/p&gt; &lt;div&gt; &lt;div collapsed="" id="highlighter_648647"&gt;&lt;div&gt;&lt;div&gt;&lt;a expandsource="" style="width: 16px; height: 16px;" title="show source" href="http://www.cnblogs.com/lipan/archive/2011/03/17/1986616.html#expandSource"&gt;show source&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;最后，我们通过这段代码输出全部用户资料信息的BJSON格式：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_658937"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 打印数据BJSON&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;void&lt;/code&gt; &lt;code&gt;PrintBJSON()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;string&lt;/code&gt; &lt;code&gt;BJSON = &lt;/code&gt;&lt;code&gt;string&lt;/code&gt;&lt;code&gt;.Empty;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;foreach&lt;/code&gt; &lt;code&gt;(var documet &lt;/code&gt;&lt;code&gt;in&lt;/code&gt; &lt;code&gt;mongoCollection.FindAll().Documents)&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;BJSON += documet.ToString();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;Console.WriteLine(BJSON);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;结果如下：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_187378"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1001"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"张三"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"PassWord"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"123456"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d80ec1ab8a4731338000001"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1002"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"李四"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"PassWord"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"123456"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Detail"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"Address"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"湖北"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 20, &lt;/code&gt;&lt;code&gt;"Email"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"lisi@163.com"&lt;/code&gt; &lt;code&gt;}, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d80ec1ab8a4731338000002"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1003"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"王五"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"PassWord"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"123456"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Detail"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"Address"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"广东"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 20, &lt;/code&gt;&lt;code&gt;"Email"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"wangwu@163.com"&lt;/code&gt; &lt;code&gt;}, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d80ec1ab8a4731338000003"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"UserId"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1004"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"UserName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"赵六"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"PassWord"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"123456"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Detail"&lt;/code&gt;&lt;code&gt;: { &lt;/code&gt;&lt;code&gt;"Address"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"湖北"&lt;/code&gt; &lt;code&gt;}, &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d80ec1ab8a4731338000004"&lt;/code&gt; &lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;二、包含&amp;#8220;子集合&amp;#8221;的集合操作&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;同样举个例子：有一个学校人事管理系统要统计班级和学生的信息，现在定义了一个&amp;#8220;班级集合&amp;#8221;，这个集合里面的学生字段是一个&amp;#8220;学生集合&amp;#8221;，包含了本班全部学生。&lt;/p&gt; &lt;p&gt;&lt;strong&gt; 1) linq方式实现&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;基础配置我就不多说了，数据类定义如下：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_939331"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;01&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;02&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 班级信息&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;03&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;04&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;class&lt;/code&gt; &lt;code&gt;ClassInfo&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;05&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;06&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;ClassName { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;07&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;List&amp;lt;Student&amp;gt; Students { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;08&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;09&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;11&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// 学生信息&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;12&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/// &amp;lt;/summary&amp;gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;13&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;class&lt;/code&gt; &lt;code&gt;Student&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;14&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;15&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;string&lt;/code&gt; &lt;code&gt;Name { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;16&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;int&lt;/code&gt; &lt;code&gt;Age { &lt;/code&gt;&lt;code&gt;get&lt;/code&gt;&lt;code&gt;; &lt;/code&gt;&lt;code&gt;set&lt;/code&gt;&lt;code&gt;; }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;17&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;查询叫&amp;#8220;张三&amp;#8221;的学生在哪个班级，以及他的详细信息：&lt;/p&gt; &lt;p&gt;(这里其实是ToList后在内存中查的,linq方式直接查询好像驱动不支持。)&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_474841"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;List&amp;lt;ClassInfo&amp;gt; Select()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;mongoCollection.Linq().ToList().Where(x =&amp;gt; x.Students.Exists(s =&amp;gt; s.Name == &lt;/code&gt;&lt;code&gt;"张三"&lt;/code&gt;&lt;code&gt;)).ToList();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt; 1) 普通实现&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;查询叫&amp;#8220;张三&amp;#8221;的学生在哪个班级，以及他的详细信息：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_965403"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;public&lt;/code&gt; &lt;code&gt;List&amp;lt;Document&amp;gt; Select()&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;var mongocollection = mongoDatabase.GetCollection(&lt;/code&gt;&lt;code&gt;"ClassInfo"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code&gt;return&lt;/code&gt; &lt;code&gt;mongocollection.Find(&lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Document { { &lt;/code&gt;&lt;code&gt;"Students.Name"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"张三"&lt;/code&gt; &lt;code&gt;} }).Documents.ToList();&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;}&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;打印数据的BJSON：&lt;/p&gt; &lt;div&gt; &lt;div id="highlighter_98193"&gt;&lt;div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d814bae5c5f000000005f63"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ClassName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1001"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Students"&lt;/code&gt;&lt;code&gt;: [ { &lt;/code&gt;&lt;code&gt;"Name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"张三"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 10 }, { &lt;/code&gt;&lt;code&gt;"Name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"李四"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 0 } ] }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt2=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d814bae5c5f000000005f64"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ClassName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1002"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Students"&lt;/code&gt;&lt;code&gt;: [ ] }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div alt1=""&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;{ &lt;/code&gt;&lt;code&gt;"_id"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"4d814bae5c5f000000005f65"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"ClassName"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"1003"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Students"&lt;/code&gt;&lt;code&gt;: [ { &lt;/code&gt;&lt;code&gt;"Name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"王五"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 11 }, { &lt;/code&gt;&lt;code&gt;"Name"&lt;/code&gt;&lt;code&gt;: &lt;/code&gt;&lt;code&gt;"赵六"&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;"Age"&lt;/code&gt;&lt;code&gt;: 9 } ] }&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;strong&gt;三、小结&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;通过本节例子我们发现，MongoDB有它独特的文档结构可以描述数据对象之间的一些关系特征。它虽然没有关系型数据库多表符合查询那样强大的 表间查询方式，但也可以通过文档结构描述更灵活的关系特性，可以这么说，关系型数据库能做的，MongoDB基本上也可以做到。甚至有些关系数据库不容易 做到的，MongoDB也可以轻松做到，比如，描述数据类的继承关系等。&lt;/p&gt;&lt;/div&gt;原文出处：&lt;div&gt;http://www.cnblogs.com/lipan/archive/2011/03/17/1986616.html&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038168.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038168.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038163.html</id><title type="text">MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据（转）</title><summary type="text">在上一篇MongoDB学习笔记 中笔者带领我们学习了如何通过samus驱动实现基本数据操作，本篇中笔者带领我们学习在MVC模式下通过Jqgrid表格操作MongoDB数据。 看到下图，是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能，不过不同的是这个表格数据来源 是非关系型的数据库MongoDB。nosql虽然概念新颖，但是MongoDB基本应用实现起来还是比较轻松的，甚至代码比基本的ADO.net访问关 系数据源还要简洁。由于其本身的“非关系”的数据存储方式，使得对象关系映射这个环节对于MongoDB来讲显得毫无意义，因此我们也不会对 Mon</summary><published>2011-05-05T10:51:00Z</published><updated>2011-05-05T10:51:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038163.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038163.html"/><content type="html">&lt;div&gt;&lt;p&gt;在上一篇&lt;a href="http://database.51cto.com/art/201103/248144.htm" target="_blank"&gt;MongoDB学习笔记 &lt;/a&gt;中笔者带领我们学习了如何通过samus驱动实现基本数据操作，本篇中笔者带领我们学习在MVC模式下通过Jqgrid表格操作MongoDB数据。&lt;/p&gt; &lt;p&gt;看到下图，是通过Jqgrid实现表格数据的基本增删查改的操作。表格数据增删改是一般企业应用系统开发的常见功能，不过不同的是这个表格数据来源 是非关系型的数据库MongoDB。nosql虽然概念新颖，但是MongoDB基本应用实现起来还是比较轻松的，甚至代码比基本的ADO.net访问关 系数据源还要简洁。由于其本身的&amp;#8220;非关系&amp;#8221;的数据存储方式，使得对象关系映射这个环节对于MongoDB来讲显得毫无意义，因此我们也不会对 MongoDB引入所谓的&amp;#8220;ORM&amp;#8221;框架。&lt;/p&gt; &lt;p&gt;&lt;img alt="" src="http://images.51cto.com/files/uploadimg/20110311/0938310.jpg" width="498" border="0" height="141" /&gt;&lt;/p&gt; &lt;p&gt;下面我们将逐步讲解怎么在MVC模式下将MongoDB数据读取，并展示在前台Jqgrid表格上。这个&amp;#8220;简易系统&amp;#8221;的基本设计思想是这样的：我们 在视图层展示表格，Jqgrid相关Js逻辑全部放在一个Js文件中，控制层实现了&amp;#8220;增删查改&amp;#8221;四个业务，MongoDB的基本数据访问放在了模型层实 现。下面我们一步步实现。&lt;/p&gt; &lt;a name="i0"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;一、实现视图层Jqgrid表格逻辑&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;首先，我们新建一个MVC空白项目，添加好jQuery、jQueryUI、Jqgrid的前端框架代码：&lt;/p&gt; &lt;p&gt;然后在Views的Home文件夹下新建视图&amp;#8220;Index.aspx&amp;#8221;，在视图的body标签中添加如下HTML代码：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span&gt;&amp;lt;div&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;table&amp;nbsp;id="table1"&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/table&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;nbsp;id="div1"&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;lt;/div&amp;gt;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;接着新建Scripts\Home文件夹，在该目录新建&amp;#8220;Index.js&amp;#8221;文件，并再视图中引用，代码如下：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span&gt;jQuery(document).ready(function&amp;nbsp;()&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//jqGrid初始化&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;jQuery("#table1").jqGrid({&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url:&amp;nbsp;'/Home/UserList',&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datatype:&amp;nbsp;'json',&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mtype:&amp;nbsp;'POST',&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;colNames:&amp;nbsp;['登录名',&amp;nbsp;'姓名',&amp;nbsp;'年龄',&amp;nbsp;'手机号',&amp;nbsp;'邮箱地址',&amp;nbsp;'操作'],&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;colModel:&amp;nbsp;[&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'UserId',&amp;nbsp;index:&amp;nbsp;'UserId',&amp;nbsp;width:&amp;nbsp;180,&amp;nbsp;editable:&amp;nbsp;true&amp;nbsp;},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'UserName',&amp;nbsp;index:&amp;nbsp;'UserName',&amp;nbsp;width:&amp;nbsp;200,&amp;nbsp;editable:&amp;nbsp;true&amp;nbsp;},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'Age',&amp;nbsp;index:&amp;nbsp;'Age',&amp;nbsp;width:&amp;nbsp;150,&amp;nbsp;editable:&amp;nbsp;true&amp;nbsp;},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'Tel',&amp;nbsp;index:&amp;nbsp;'Tel',&amp;nbsp;width:&amp;nbsp;150,&amp;nbsp;editable:&amp;nbsp;true&amp;nbsp;},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'Email',&amp;nbsp;index:&amp;nbsp;'Email',&amp;nbsp;width:&amp;nbsp;150,&amp;nbsp;editable:&amp;nbsp;true&amp;nbsp;},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;name:&amp;nbsp;'Edit',&amp;nbsp;index:&amp;nbsp;'Edit',&amp;nbsp;width:&amp;nbsp;150,&amp;nbsp;editable:&amp;nbsp;false,&amp;nbsp;align:&amp;nbsp;'center'&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pager:&amp;nbsp;'#div1',&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;postData:&amp;nbsp;{},&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rowNum:&amp;nbsp;5,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rowList:&amp;nbsp;[5,&amp;nbsp;10,&amp;nbsp;20],&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sortable:&amp;nbsp;true,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caption:&amp;nbsp;'用户信息管理',&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hidegrid:&amp;nbsp;false,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rownumbers:&amp;nbsp;true,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;viewrecords:&amp;nbsp;true&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).navGrid('#div1',&amp;nbsp;{&amp;nbsp;edit:&amp;nbsp;false,&amp;nbsp;add:&amp;nbsp;false,&amp;nbsp;del:&amp;nbsp;false&amp;nbsp;})&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.navButtonAdd('#div1',&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caption:&amp;nbsp;"编辑",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buttonicon:&amp;nbsp;"ui-icon-add",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onClickButton:&amp;nbsp;function&amp;nbsp;()&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;id&amp;nbsp;=&amp;nbsp;$("#table1").getGridParam("selrow");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(id&amp;nbsp;==&amp;nbsp;null)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("请选择行！");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(id&amp;nbsp;==&amp;nbsp;"newId")&amp;nbsp;return;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").editRow(id);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_UserId").attr("readonly","readOnly");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").setCell(id,&amp;nbsp;"Edit",&amp;nbsp;"&amp;lt;input&amp;nbsp;id='Button1'&amp;nbsp;type='button'&amp;nbsp;value='提交'&amp;nbsp;onclick='Update(\""&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"\")'&amp;nbsp;/&amp;gt;&amp;lt;input&amp;nbsp;id='Button2'&amp;nbsp;type='button'&amp;nbsp;value='取消'&amp;nbsp;onclick='Cancel(\""&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"\")'&amp;nbsp;/&amp;gt;");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).navButtonAdd('#div1',&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caption:&amp;nbsp;"删除",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buttonicon:&amp;nbsp;"ui-icon-del",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onClickButton:&amp;nbsp;function&amp;nbsp;()&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;id&amp;nbsp;=&amp;nbsp;$("#table1").getGridParam("selrow");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(id&amp;nbsp;==&amp;nbsp;null)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("请选择行！");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete(id);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).navButtonAdd('#div1',&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;caption:&amp;nbsp;"新增",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buttonicon:&amp;nbsp;"ui-icon-add",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;onClickButton:&amp;nbsp;function&amp;nbsp;()&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").addRowData("newId",&amp;nbsp;-1);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").editRow("newId");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").setCell("newId",&amp;nbsp;"Edit",&amp;nbsp;"&amp;lt;input&amp;nbsp;id='Button1'&amp;nbsp;type='button'&amp;nbsp;value='提交'&amp;nbsp;onclick='Add()'&amp;nbsp;/&amp;gt;&amp;lt;input&amp;nbsp;id='Button2'&amp;nbsp;type='button'&amp;nbsp;value='取消'&amp;nbsp;onclick='Cancel(\"newId\")'&amp;nbsp;/&amp;gt;");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//取消编辑状态&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;function&amp;nbsp;Cancel(id)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(id&amp;nbsp;==&amp;nbsp;"newId")&amp;nbsp;$("#table1").delRowData("newId");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;$("#table1").restoreRow(id);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//向后台ajax请求新增数据&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;function&amp;nbsp;Add()&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;UserId&amp;nbsp;=&amp;nbsp;$("#table1").find("#newId"&amp;nbsp;+&amp;nbsp;"_UserId").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;UserName&amp;nbsp;=&amp;nbsp;$("#table1").find("#newId"&amp;nbsp;+&amp;nbsp;"_UserName").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Age&amp;nbsp;=&amp;nbsp;$("#table1").find("#newId"&amp;nbsp;+&amp;nbsp;"_Age").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Tel&amp;nbsp;=&amp;nbsp;$("#table1").find("#newId"&amp;nbsp;+&amp;nbsp;"_Tel").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Email&amp;nbsp;=&amp;nbsp;$("#table1").find("#newId"&amp;nbsp;+&amp;nbsp;"_Email").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;"POST",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url:&amp;nbsp;"/Home/Add",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data:&amp;nbsp;"UserId="&amp;nbsp;+&amp;nbsp;UserId&amp;nbsp;+&amp;nbsp;"&amp;amp;UserName="&amp;nbsp;+&amp;nbsp;UserName&amp;nbsp;+&amp;nbsp;"&amp;amp;Age="&amp;nbsp;+&amp;nbsp;Age&amp;nbsp;+&amp;nbsp;"&amp;amp;Tel="&amp;nbsp;+&amp;nbsp;Tel&amp;nbsp;+&amp;nbsp;"&amp;amp;Email="&amp;nbsp;+&amp;nbsp;Email,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success:&amp;nbsp;function&amp;nbsp;(msg)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("新增数据:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;msg);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").trigger("reloadGrid");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//向后台ajax请求更新数据&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;function&amp;nbsp;Update(id)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;UserId&amp;nbsp;=&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_UserId").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;UserName&amp;nbsp;=&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_UserName").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Age&amp;nbsp;=&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_Age").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Tel&amp;nbsp;=&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_Tel").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;Email&amp;nbsp;=&amp;nbsp;$("#table1").find("#"&amp;nbsp;+&amp;nbsp;id&amp;nbsp;+&amp;nbsp;"_Email").val();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;"POST",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url:&amp;nbsp;"/Home/Update",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data:&amp;nbsp;"UserId="&amp;nbsp;+&amp;nbsp;UserId&amp;nbsp;+&amp;nbsp;"&amp;amp;UserName="&amp;nbsp;+&amp;nbsp;UserName&amp;nbsp;+&amp;nbsp;"&amp;amp;Age="&amp;nbsp;+&amp;nbsp;Age&amp;nbsp;+&amp;nbsp;"&amp;amp;Tel="&amp;nbsp;+&amp;nbsp;Tel&amp;nbsp;+&amp;nbsp;"&amp;amp;Email="&amp;nbsp;+&amp;nbsp;Email,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success:&amp;nbsp;function&amp;nbsp;(msg)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("修改数据:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;msg);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").trigger("reloadGrid");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//向后台ajax请求删除数据&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;function&amp;nbsp;Delete(id)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;UserId&amp;nbsp;=&amp;nbsp;$("#table1").getCell(id,&amp;nbsp;"UserId");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;"POST",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url:&amp;nbsp;"/Home/Delete",&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data:&amp;nbsp;"UserId="&amp;nbsp;+&amp;nbsp;UserId,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success:&amp;nbsp;function&amp;nbsp;(msg)&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert("删除数据:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;msg);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#table1").trigger("reloadGrid");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;二、实现控制层业务&lt;/p&gt; &lt;p&gt;在Controllers目录下新建控制器&amp;#8220;HomeController.cs&amp;#8221;，Index.js中产生了四个ajax请求，对应控制层也有四个业务方法。HomeController代码如下：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span&gt;public&amp;nbsp;class&amp;nbsp;HomeController&amp;nbsp;:&amp;nbsp;Controller&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UserModel&amp;nbsp;userModel&amp;nbsp;=&amp;nbsp;new&amp;nbsp;UserModel();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;ActionResult&amp;nbsp;Index()&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;View();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;获取全部用户列表，通过json将数据提供给jqGrid&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;JsonResult&amp;nbsp;UserList(string&amp;nbsp;sord,&amp;nbsp;string&amp;nbsp;sidx,&amp;nbsp;string&amp;nbsp;rows,&amp;nbsp;string&amp;nbsp;page)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;list&amp;nbsp;=&amp;nbsp;userModel.FindAll();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;query&amp;nbsp;=&amp;nbsp;from&amp;nbsp;u&amp;nbsp;in&amp;nbsp;list&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;new&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id&amp;nbsp;=&amp;nbsp;i++,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cell&amp;nbsp;=&amp;nbsp;new&amp;nbsp;string[]{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u["UserId"].ToString(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u["UserName"].ToString(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u["Age"].ToString(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u["Tel"].ToString(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;u["Email"].ToString(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"-"&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;data&amp;nbsp;=&amp;nbsp;new&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;total&amp;nbsp;=&amp;nbsp;query.Count()&amp;nbsp;/&amp;nbsp;Convert.ToInt32(rows)&amp;nbsp;+&amp;nbsp;1,&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;page&amp;nbsp;=&amp;nbsp;Convert.ToInt32(page),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;records&amp;nbsp;=&amp;nbsp;query.Count(),&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rows&amp;nbsp;=&amp;nbsp;query.Skip(Convert.ToInt32(rows)&amp;nbsp;*&amp;nbsp;(Convert.ToInt32(page)&amp;nbsp;-&amp;nbsp;1)).Take(Convert.ToInt32(rows))&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Json(data,&amp;nbsp;JsonRequestBehavior.AllowGet);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;响应Js的&amp;#8220;Add&amp;#8221;ajax请求，执行添加用户操作&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;ContentResult&amp;nbsp;Add(string&amp;nbsp;UserId,&amp;nbsp;string&amp;nbsp;UserName,&amp;nbsp;int&amp;nbsp;Age,&amp;nbsp;string&amp;nbsp;Tel,&amp;nbsp;string&amp;nbsp;Email)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Document&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Document();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["UserId"]&amp;nbsp;=&amp;nbsp;UserId;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["UserName"]&amp;nbsp;=&amp;nbsp;UserName;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Age"]&amp;nbsp;=&amp;nbsp;Age;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Tel"]&amp;nbsp;=&amp;nbsp;Tel;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Email"]&amp;nbsp;=&amp;nbsp;Email;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;userModel.Add(doc);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("添加成功");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("添加失败");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;响应Js的&amp;#8220;Delete&amp;#8221;ajax请求，执行删除用户操作&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;ContentResult&amp;nbsp;Delete(string&amp;nbsp;UserId)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;userModel.Delete(UserId);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("删除成功");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("删除失败");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;响应Js的&amp;#8220;Update&amp;#8221;ajax请求，执行更新用户操作&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;ContentResult&amp;nbsp;Update(string&amp;nbsp;UserId,&amp;nbsp;string&amp;nbsp;UserName,&amp;nbsp;int&amp;nbsp;Age,&amp;nbsp;string&amp;nbsp;Tel,&amp;nbsp;string&amp;nbsp;Email)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Document&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Document();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["UserId"]&amp;nbsp;=&amp;nbsp;UserId;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["UserName"]&amp;nbsp;=&amp;nbsp;UserName;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Age"]&amp;nbsp;=&amp;nbsp;Age;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Tel"]&amp;nbsp;=&amp;nbsp;Tel;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Email"]&amp;nbsp;=&amp;nbsp;Email;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;userModel.Update(doc);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("修改成功");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Content("修改失败");&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;三、实现模型层数据访问&lt;/p&gt; &lt;p&gt;最后，我们在Models新建一个Home文件夹，添加模型&amp;#8220;UserModel.cs&amp;#8221;，实现MongoDB数据库访问代码如下：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span&gt;public&amp;nbsp;class&amp;nbsp;UserModel&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//链接字符串(此处三个字段值根据需要可为读配置文件)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;string&amp;nbsp;connectionString&amp;nbsp;=&amp;nbsp;"mongodb://localhost";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//数据库名&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;string&amp;nbsp;databaseName&amp;nbsp;=&amp;nbsp;"myDatabase";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//集合名&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;string&amp;nbsp;collectionName&amp;nbsp;=&amp;nbsp;"userCollection";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;Mongo&amp;nbsp;mongo;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;MongoDatabase&amp;nbsp;mongoDatabase;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;MongoCollection&amp;lt;Document&amp;gt;&amp;nbsp;mongoCollection;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;UserModel()&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Mongo(connectionString);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoDatabase&amp;nbsp;=&amp;nbsp;mongo.GetDatabase(databaseName)&amp;nbsp;as&amp;nbsp;MongoDatabase;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoCollection&amp;nbsp;=&amp;nbsp;mongoDatabase.GetCollection&amp;lt;Document&amp;gt;(collectionName)&amp;nbsp;as&amp;nbsp;MongoCollection&amp;lt;Document&amp;gt;;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo.Connect();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~UserModel()&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo.Disconnect();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;增加一条用户记录&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;param&amp;nbsp;name="doc"&amp;gt;&amp;lt;/param&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;Add(Document&amp;nbsp;doc)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoCollection.Insert(doc);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;删除一条用户记录&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;Delete(string&amp;nbsp;UserId)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoCollection.Remove(new&amp;nbsp;Document&amp;nbsp;{&amp;nbsp;{&amp;nbsp;"UserId",&amp;nbsp;UserId&amp;nbsp;}&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;更新一条用户记录&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;param&amp;nbsp;name="doc"&amp;gt;&amp;lt;/param&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;Update(Document&amp;nbsp;doc)&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoCollection.FindAndModify(doc,&amp;nbsp;new&amp;nbsp;Document&amp;nbsp;{&amp;nbsp;{&amp;nbsp;"UserId",&amp;nbsp;doc["UserId"].ToString()&amp;nbsp;}&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;查找所有用户记录&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;/summary&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;///&amp;nbsp;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;IEnumerable&amp;lt;Document&amp;gt;&amp;nbsp;FindAll()&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;mongoCollection.FindAll().Documents;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;}&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;br /&gt; 四、小结&lt;br /&gt; 代码下载：http://files.cnblogs.com/lipan/MongoDB_003.rar&lt;/p&gt; &lt;p&gt;自此为止一个简单MongoDB表格数据操作的功能就实现完毕了，相信读者在看完这篇文章后，差不多都可以轻松实现MongoDB项目的开发应用了。聪明的你一定会比本文做的功能更完善，更好。下篇计划讲解linq的方式访问数据集合。&lt;/p&gt; &lt;p&gt;原文出处：http://www.cnblogs.com/lipan/archive/2011/03/11/1980227.html&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038163.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038163.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038159.html</id><title type="text">MongoDB学习笔记(二) 通过samus驱动实现基本数据操作（转）</title><summary type="text">上一期笔者为我们做了MongoDB的介绍并且介绍了MongoDB的安装方法，这一期我们将继续跟随笔者学习通过samus驱动实现基本数据操作。 传统的关系数据库一般由数据库（database）、表（table）、记录（record）三个层次概念组成，MongoDB是由 （database）、集合（collection）、文档对象（document）三个层次组成。MongoDB对于关系型数据库里的表，但是集合中没 有列、行和关系概念，这体现了模式自由的特点。 一、关于MongoDB的驱动 MongoDB支持多种语言的驱动，在此我们只介绍C#的驱动。仅C#驱动都有很多种，每种驱动的形式大致相同，但是</summary><published>2011-05-05T10:47:00Z</published><updated>2011-05-05T10:47:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038159.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038159.html"/><content type="html">&lt;div&gt;&lt;p&gt;上一期笔者为我们做了&lt;a href="http://database.51cto.com/art/201103/247882.htm"&gt;MongoDB的介绍并且介绍了MongoDB的安装方法&lt;/a&gt;，这一期我们将继续跟随笔者学习通过samus驱动实现基本数据操作。&lt;/p&gt; &lt;p&gt;传统的关系数据库一般由数据库（database）、表（table）、记录（record）三个层次概念组成，MongoDB是由 （database）、集合（collection）、文档对象（document）三个层次组成。MongoDB对于关系型数据库里的表，但是集合中没 有列、行和关系概念，这体现了模式自由的特点。&lt;/p&gt; &lt;a name="i0"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;一、关于MongoDB的驱动&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;MongoDB支持多种语言的驱动，在此我们只介绍C#的驱动。仅C#驱动都有很多种，每种驱动的形式大致相同，但是细节各有千秋，因此代码不能通 用。比较常用的是官方驱动和samus驱动。samus驱动除了支持一般形式的操作之外，还支持linq方式操纵数据。各人比较喜欢这种方式。&lt;/p&gt; &lt;p&gt;官方驱动下载地址：https://github.com/mongodb/mongo-csharp-driver/downloads&lt;/p&gt; &lt;p&gt;samus驱动下载地址：https://github.com/samus/mongodb-csharp&lt;/p&gt; &lt;p&gt;本篇将从samus驱动入手讲解数据库访问，国际惯例，存取&amp;#8220;Hello World!&amp;#8221;。&lt;/p&gt; &lt;a name="i1"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;二、通过samus驱动实现HelloWorld存取&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;在进行下述操作之前，请先确定MongoDB服务已经开启，不知道怎么开启服务，请看上篇。下载驱动，新建控制台项目，并添加对MongoDB.dll的引用，如果你下载的是驱动源码，编译一遍引用生成的DLL即可。&lt;/p&gt; &lt;p&gt;基本代码如下：&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;span&gt;//链接字符串&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;string&amp;nbsp;connectionString&amp;nbsp;=&amp;nbsp;"mongodb://localhost";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//数据库名&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;string&amp;nbsp;databaseName&amp;nbsp;=&amp;nbsp;"myDatabase"; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//集合名&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;string&amp;nbsp;collectionName&amp;nbsp;=&amp;nbsp;"myCollection";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//定义Mongo服务&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;Mongo&amp;nbsp;mongo&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Mongo(connectionString);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//获取databaseName对应的数据库，不存在则自动创建&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;MongoDatabase&amp;nbsp;mongoDatabase&amp;nbsp;=&amp;nbsp;mongo.GetDatabase(databaseName)&amp;nbsp;as&amp;nbsp;MongoDatabase;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//获取collectionName对应的集合，不存在则自动创建&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;MongoCollection&amp;lt;Document&amp;gt;&amp;nbsp;mongoCollection&amp;nbsp;=&amp;nbsp;mongoDatabase.GetCollection&amp;lt;Document&amp;gt;(collectionName)&amp;nbsp;as&amp;nbsp;MongoCollection&amp;lt;Document&amp;gt;;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;//链接数据库&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;mongo.Connect();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;try&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//定义一个文档对象，存入两个键值对&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Document&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;new&amp;nbsp;Document();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["ID"]&amp;nbsp;=&amp;nbsp;1;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc["Msg"]&amp;nbsp;=&amp;nbsp;"Hello&amp;nbsp;World!";&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//将这个文档对象插入集合&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongoCollection.Insert(doc);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//在集合中查找键值对为ID=1的文档对象&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Document&amp;nbsp;docFind&amp;nbsp;=&amp;nbsp;mongoCollection.FindOne(new&amp;nbsp;Document&amp;nbsp;{&amp;nbsp;{&amp;nbsp;"ID",&amp;nbsp;1&amp;nbsp;}&amp;nbsp;});&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//输出查找到的文档对象中键&amp;#8220;Msg&amp;#8221;对应的值，并输出&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(Convert.ToString(docFind["Msg"]));&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;finally&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//关闭链接&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mongo.Disconnect();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;运行程序，成功打印helloword。同时，我们打开数据文件夹，发现多了两个文件&amp;#8220;myDatabase.ns&amp;#8221;和&amp;#8220;myDatabase.0&amp;#8221;。&lt;/p&gt; &lt;a name="i2"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;三、小结&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;代码下载：http://files.cnblogs.com/lipan/MongoDB_001.rar&lt;/p&gt; &lt;p&gt;本篇简洁的讲解了基本存取操作，下篇将结合MVC框架通过MongoDB实现model层单个集合的基本增删查改操作&lt;/p&gt; &lt;p&gt;原文出处：http://www.cnblogs.com/lipan/archive/2011/03/08/1977691.html&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038159.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038159.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/goooto/archive/2011/05/05/2038152.html</id><title type="text">MongoDB学习笔记（一）MongoDB介绍及安装(转)</title><summary type="text">这是MongoDB的系列学习笔记的第一篇，主要介绍什么是非关系型数据库MongoDB，如何下载，去哪儿下载，又该怎么正确的安装等一系列问题。 一、前言 最近开始学习非关系型数据库MongoDB，却在博客园上找不到比较系统的教程，很多资料都要去查阅英文网站，效率比较低下。本人不才，借着自学的 机会把心得体会都记录下来，方便感兴趣的童鞋分享讨论。部分资源出自其他博客，旨将零散知识点集中到一起，如果有侵犯您的权利，请联系li- pan2@163.com。大部分内容均系原创，欢迎大家转载分享，但转载的同时别忘了注明作者和原文链接哦。 二、MongoDB简介 MongoDB是一个高性能，开源，无模式的文</summary><published>2011-05-05T10:40:00Z</published><updated>2011-05-05T10:40:00Z</updated><author><name>阿瑞|www.16hi.com</name><uri>http://www.cnblogs.com/goooto/</uri></author><link rel="alternate" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038152.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038152.html"/><content type="html">&lt;div&gt;&lt;p&gt;这是MongoDB的系列学习笔记的第一篇，主要介绍什么是非关系型数据库MongoDB，如何下载，去哪儿下载，又该怎么正确的安装等一系列问题。&lt;/p&gt; &lt;a name="i0"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;一、前言&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;最近开始学习非关系型数据库MongoDB，却在博客园上找不到比较系统的教程，很多资料都要去查阅英文网站，效率比较低下。本人不才，借着自学的 机会把心得体会都记录下来，方便感兴趣的童鞋分享讨论。部分资源出自其他博客，旨将零散知识点集中到一起，如果有侵犯您的权利，请联系li- pan2@163.com。大部分内容均系原创，欢迎大家转载分享，但转载的同时别忘了注明作者和原文链接哦。&lt;/p&gt; &lt;a name="i1"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;二、MongoDB简介&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;MongoDB是一个高性能，开源，无模式的文档型数据库，是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是：http://www.mongodb.org/，读者可以在此获得更详细的信息。&amp;nbsp;&lt;/p&gt; &lt;table width="600" align="center" border="1" cellpadding="1" cellspacing="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;&lt;span style="font-size: smaller"&gt;小插曲：什么是NoSql？&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;div&gt; &lt;p&gt;&lt;span style="font-size: smaller"&gt;NoSql，全称是 Not Only  Sql,指的是非关系型的数据库。下一代数据库主要解决几个要点：非关系型的、分布式的、开源的、水平可扩展的。原始的目的是为了大规模web应用，这场 运动开始于2009年初，通常特性应用如：模式自由、支持简易复制、简单的API、最终的一致性（非ACID）、大容量数据等。NoSQL被我们用得最多 的当数key-value存储，当然还有其他的文档型的、列存储、图型数据库、xml数据库等。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;strong&gt;特点:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;高性能、易部署、易使用，存储数据非常方便。主要功能特性有：&lt;/li&gt;&lt;li&gt;面向集合存储，易存储对象类型的数据。&lt;/li&gt;&lt;li&gt;模式自由。&lt;/li&gt;&lt;li&gt;支持动态查询。&lt;/li&gt;&lt;li&gt;支持完全索引，包含内部对象。&lt;/li&gt;&lt;li&gt;支持查询。&lt;/li&gt;&lt;li&gt;支持复制和故障恢复。&lt;/li&gt;&lt;li&gt;使用高效的二进制数据存储，包括大型对象（如视频等）。&lt;/li&gt;&lt;li&gt;自动处理碎片，以支持云计算层次的扩展性&lt;/li&gt;&lt;li&gt;支持Python，PHP，Ruby，Java，C，C#，Javascript，Perl及C++语言的驱动程序，社区中也提供了对Erlang及.NET等平台的驱动程序。&lt;/li&gt;&lt;li&gt;文件存储格式为BSON（一种JSON的扩展）。&lt;/li&gt;&lt;li&gt;可通过网络访问。&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;功能:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;面向集合的存储：&lt;/strong&gt;适合存储对象及JSON形式的数据。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;动态查询：&lt;/strong&gt;Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记，可轻易查询文档中内嵌的对象及数组。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;完整的索引支持：&lt;/strong&gt;包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式，并生成一个高效的查询计划。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;查询监视：&lt;/strong&gt;Mongo包含一个监视工具用于分析数据库操作的性能。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;复制及自动故障转移：&lt;/strong&gt;Mongo数据库支持服务器之间的数据复制，支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。&lt;/li&gt;&lt;li&gt;&lt;strong&gt;高效的传统存储方式：&lt;/strong&gt;支持二进制数据及大型对象（如照片或图片）&lt;/li&gt;&lt;li&gt;&lt;strong&gt;自动分片以支持云级别的伸缩性：&lt;/strong&gt;自动分片功能支持水平的数据库集群，可动态添加额外的机器。&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;适用场合:&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;网站数据：Mongo非常适合实时的插入，更新与查询，并具备网站实时数据存储所需的复制及高度伸缩性。&lt;/li&gt;&lt;li&gt;缓存：由于性能很高，Mongo也适合作为信息基础设施的缓存层。在系统重启之后，由Mongo搭建的持久化缓存层可以避免下层的数据源 过载。&lt;/li&gt;&lt;li&gt;大尺寸，低价值的数据：使用传统的关系型数据库存储一些数据时可能会比较昂贵，在此之前，很多时候程序员往往会选择传统的文件进行存储。&lt;/li&gt;&lt;li&gt;高伸缩性的场景：Mongo非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对MapReduce引擎的内置支持。&lt;/li&gt;&lt;li&gt;用于对象及JSON数据的存储：Mongo的BSON数据格式非常适合文档化格式的存储及查询。&lt;/li&gt;&lt;/ul&gt;  &lt;a name="i2"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;三、下载安装和配置&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;安装Mongo数据库：&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;在发布本文的时间官方提供的最新版本是：1.6.5 ，如果不做特殊声明，本教程所用的版本将会是这个版本。&lt;/p&gt; &lt;ol&gt;&lt;li&gt;第一步：下载安装包：如果是win系统，注意是64位还是32位版本的，请选择正确的版本。&lt;/li&gt;&lt;li&gt;第二步：新建目录&amp;#8220;D:\MongoDB&amp;#8221;，解压下载到的安装包，找到bin目录下面全部.exe文件，拷贝到刚创建的目录下。&lt;/li&gt;&lt;li&gt;第三步：在&amp;#8220;D:\MongoDB&amp;#8221;目录下新建&amp;#8220;data&amp;#8221;文件夹，它将会作为数据存放的根文件夹。&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;注：官方下载地址：&lt;a href="http://www.mongodb.org/downloads" target="_blank"&gt;http://www.mongodb.org/downloads&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;配置Mongo服务端：&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;打开CMD窗口，按照如下方式输入命令：&lt;br /&gt;&amp;gt; d:&lt;br /&gt;&amp;gt; cd D:\MongoDB&lt;br /&gt;&amp;gt; mongod --dbpath D:\MongoDB\data&lt;/p&gt; &lt;p&gt;配置成功后会看到如下画面：&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.51cto.com/files/uploadimg/20110308/1049310.jpg" target="_blank"&gt;&lt;img alt="" src="http://images.51cto.com/files/uploadimg/20110308/1049310.jpg" width="498" border="0" height="438" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;在浏览器输入：http://localhost:27017/，可以看到如下提示：&lt;br /&gt;You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number&lt;/p&gt; &lt;p&gt;如此，MongoDB数据库服务已经成功启动了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;div&gt;为方便启动数据库，也可以安装windows服务&lt;br /&gt;1.创建logs/mongodb.log文件&lt;br /&gt;2.D:\MongoDB&amp;gt;mongod --logpath d:/MongoDB/logs/mongodb.log --logappend --dbpath d:\MongoDB\data --directoryperdb --install&lt;/div&gt;&lt;p&gt;说明：&lt;br /&gt;指定日志文件及输出方式（追加）：--logpath d:/MongoDB/logs/mongodb.log --logappend &amp;nbsp;&lt;br /&gt;指定数据文件目录：--dbpath d:\MongoDB\data&lt;br /&gt;指定每个DB新建一个目录：--directoryperdb&lt;br /&gt;&lt;br /&gt;安装参数：--install，相对应的是：--remove&lt;br /&gt;&lt;br /&gt;启动服务：net start MongoDB&lt;br /&gt;停止服务:net stop MongoDB&lt;/p&gt;&amp;nbsp;&lt;/p&gt; &lt;a name="i3"&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;四、后记&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;现在我们已经初步实现了MongoDB的安装和服务的启动工作。后面我们还有很多的工作，要使MongoDB能在我们的C#代码中被操作，还需要驱动，经常有朋友在网上copy代码后发现编译不通过，那估计是驱动不一致的问题了，下篇文章会详细讲解，未完待续。。&lt;/p&gt; &lt;p&gt;原文出处：http://www.cnblogs.com/lipan/archive/2011/03/08/1966463.html&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/goooto/aggbug/2038152.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/goooto/archive/2011/05/05/2038152.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
