{"id":310,"date":"2012-03-16T20:43:12","date_gmt":"2012-03-16T12:43:12","guid":{"rendered":"http:\/\/www.royalwzy.com\/?p=310"},"modified":"2014-01-16T20:54:58","modified_gmt":"2014-01-16T12:54:58","slug":"mongodb%e5%ad%a6%e4%b9%a002-%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e6%93%8d%e4%bd%9c","status":"publish","type":"post","link":"http:\/\/www.royalwzy.com\/?p=310","title":{"rendered":"MongoDB\u5b66\u4e6002&#8211;\u589e\u5220\u6539\u67e5\u64cd\u4f5c"},"content":{"rendered":"<div>MongoDB\u7684\u589e\u5220\u6539\u67e5\u64cd\u4f5c<\/p>\n<div>\n<ol>\n<li>INSERT\u64cd\u4f5c:\n<ol>\n<li>\u5355\u6761\u63d2\u5165(\u53ef\u4ee5\u4f7f\u7528js\u7684\u8bed\u6cd5); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(113).png\" width=\"771\" height=\"391\" \/><\/li>\n<li>\u6279\u91cf\u63d2\u5165:mongodb\u4e2d\u5e76\u6ca1\u6709\u63d0\u4f9b\u6279\u91cf\u63d2\u5165\u7684\u8bed\u6cd5,\u4f46\u662f\u9ad8\u7ea7\u8bed\u8a00\u4e2d\u63d0\u4f9b\u4e86\u4e0emongodb\u6279\u91cf\u63d2\u5165\u7684\u63a5\u53e3,\u4e5f\u53ef\u4ee5\u901a\u8fc7for\u5faa\u73af\u6765\u6a21\u62df;<\/li>\n<li>insert\u548csave\u7684\u533a\u522b:\n<ol>\n<li>\u5982\u679c\u4e0d\u4f7f\u7528_id\u5217,\u4e24\u4e2a\u51fd\u6570\u6ca1\u6709\u533a\u522b\u90fd\u662f\u63d2\u5165\u6570\u636e;<\/li>\n<li>\u5982\u679c\u4f7f\u7528\u4e86_id\u5217,insert\u63d2\u5165_id\u91cd\u590d\u7684\u8bdd\u4f1a\u62a5\u9519;save\u63d2\u5165_id\u91cd\u590d\u7684\u8bdd\u4f1a\u8c03\u7528upsert,\u5373\u5b58\u5728\u5c31\u66f4\u65b0,\u4e0d\u5b58\u5728\u5c31\u63d2\u5165;<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>FIND\u64cd\u4f5c:\n<ol>\n<li>\u6839\u636e\u6761\u4ef6\u67e5\u8be2:[&gt;, &gt;=, &lt;, &lt;=, !=, =]\u5206\u522b\u5bf9\u5e94[$gt, $gte, $lt, $lte, $ne, \u65e0]\u5173\u952e\u5b57; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(114).png\" width=\"771\" height=\"161\" \/><\/li>\n<li>\u591a\u6761\u4ef6\u67e5\u8be2:[and, or, in, notin]\u5206\u522b\u5bf9\u5e94[\u65e0, $or, $in, $nin]\u5173\u952e\u5b57; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(115).png\" width=\"790\" height=\"508\" \/><\/li>\n<li>\u6b63\u5219\u8868\u8fbe\u5f0f\u67e5\u8be2; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(116).png\" width=\"790\" height=\"85\" \/><\/li>\n<li>\u4f7f\u7528$where\u5b50\u53e5\u67e5\u8be2; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(117).png\" width=\"786\" height=\"80\" \/><\/li>\n<li>findOne()\u51fd\u6570\u8fd4\u56de\u6ee1\u8db3\u6761\u4ef6\u7684\u7b2c\u4e00\u6761\u8bb0\u5f55\u6216\u8005\u662fnull:printjson(db.user.findOne({name:&#8221;joe&#8221;})); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(118).png\" width=\"787\" height=\"54\" \/><\/li>\n<\/ol>\n<\/li>\n<li>UPDATE\u64cd\u4f5c:\n<ol>\n<li>\u6574\u4f53\u66f4\u65b0; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(119).png\" width=\"787\" height=\"250\" \/><\/li>\n<li>\u5c40\u90e8\u66f4\u65b0,\u4f7f\u7528\u4fee\u6539\u5668$inc\u548c$set\u6765\u66f4\u65b0\u67d0\u4e00\u4e2a\u5b57\u6bb5;\n<ol>\n<li>$inc:increase\u7684\u7f29\u5199,\u5373\u5728\u539f\u6765\u503c\u7684\u57fa\u7840\u4e0a\u589e\u52a0$inc\u6307\u5b9a\u7684\u503c,\u53ef\u4ee5\u7528\u4e8e\u81ea\u589e\u7684\u4e3b\u952e; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(120).png\" width=\"786\" height=\"181\" \/><\/li>\n<li>$set:\u5373\u8bbe\u7f6e\u67d0\u4e2a\u5217\u7684\u503c\u4e3a$set\u6307\u5b9a\u7684\u503c; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(121).png\" width=\"788\" height=\"177\" \/><\/li>\n<\/ol>\n<\/li>\n<li>upsert\u64cd\u4f5c:update\u64cd\u4f5c\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u67e5\u8be2\u6761\u4ef6,\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u8981\u66f4\u65b0\u7684\u503c,\u5982\u679c\u8bbe\u7f6e\u7b2c\u4e09\u4e2a\u53c2\u6570\u4e3atrue\u7684\u8bdd,\u5c31\u8868\u793a\u5982\u679c\u5b58\u5728\u8bb0\u5f55\u5c31\u66f4\u65b0,\u5982\u679c\u4e0d\u5b58\u5728\u5c31\u63d2\u5165; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(122).png\" width=\"788\" height=\"96\" \/><\/li>\n<li>multi\u64cd\u4f5c:\u6279\u91cf\u66f4\u65b0,\u5982\u679cupdate\u64cd\u4f5c\u5339\u914d\u5230\u4e86\u591a\u6761\u8bb0\u5f55,\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ea\u66f4\u65b0\u7b2c\u4e00\u6761,\u5982\u679c\u9700\u8981\u5168\u90e8\u66f4\u65b0\u7684\u8bdd,\u9700\u8981\u628aupdate\u64cd\u4f5c\u4e2d\u7b2c\u56db\u4e2a\u53c2\u6570\u8bbe\u7f6e\u4e3atrue; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(123).png\" width=\"789\" height=\"318\" \/><\/li>\n<\/ol>\n<\/li>\n<li>REMOVE\u64cd\u4f5c:\n<ol>\n<li>\u6839\u636e\u6761\u4ef6\u5220\u9664:db.mycoll.remove(query); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(124).png\" width=\"789\" height=\"306\" \/><\/li>\n<li>\u5168\u90e8\u5220\u9664:db.mycoll.remove(); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(125).png\" width=\"787\" height=\"75\" \/><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<div><\/div>\n<\/div>\n<div><\/div>\n<div>&#8212; insert\u64cd\u4f5c;<\/div>\n<div>var user={&#8220;name&#8221;:&#8221;jack&#8221;, &#8220;password&#8221;:&#8221;12345&#8243;, &#8220;age&#8221;:20, &#8220;address&#8221;:{&#8220;province&#8221;:&#8221;shanghai&#8221;, &#8220;city&#8221;:&#8221;shanghai&#8221;}, &#8220;favourite&#8221;:[&#8220;apple&#8221;, &#8220;banana&#8221;]}<\/div>\n<div>db.user.insert(user);<\/div>\n<div><\/div>\n<div>user.name=&#8221;joe&#8221;<\/div>\n<div>user.age=21<\/div>\n<div>user.address={&#8220;province&#8221;:&#8221;beijing&#8221;, &#8220;city&#8221;:&#8221;beijing&#8221;}<\/div>\n<div>user.favourite=[&#8220;sanguosha&#8221;, &#8220;dota&#8221;]<\/div>\n<div>db.user.insert(user)<\/div>\n<div><\/div>\n<div>db.user.find()<\/div>\n<div><\/div>\n<div>&#8212; find\u64cd\u4f5c;<\/div>\n<div>1.\u67e5\u627e\u5e74\u9f84\u5927\u4e8e\u7b49\u4e8e21\u5c81\u7684\u96c6\u5408;<\/div>\n<div>db.user.find({&#8220;age&#8221;:{$gte:21}})<\/div>\n<div>2.\u67e5\u627e\u5e74\u9f84\u7b49\u4e8e20\u5c81\u7684\u96c6\u5408;<\/div>\n<div>db.user.find({&#8220;age&#8221;:20})<\/div>\n<div><\/div>\n<div>3.\u67e5\u627e\u540d\u79f0\u4e3ajack\u800c\u4e14\u7701\u4efd\u4e3ashanghai\u7684\u96c6\u5408:name=&#8217;jack&#8217; and province=&#8217;shanghai&#8217;;<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;, &#8220;address.province&#8221;:&#8221;shanghai&#8221;})<\/div>\n<div>4.\u67e5\u627e\u7701\u4efd\u4e3a\u4e0a\u6d77\u6216\u8005\u5317\u4eac\u7684\u96c6\u5408:province=&#8217;shanghai&#8217; or province=&#8217;beijing&#8217;;<\/div>\n<div>db.user.find({$or:[{&#8220;address.province&#8221;:&#8221;shanghai&#8221;}, {&#8220;address.province&#8221;: &#8220;beijing&#8221;}]})<\/div>\n<div>5.\u67e5\u627e\u7701\u4efd\u5728\u4e0a\u6d77\u6216\u8005\u5317\u4eac\u7684\u96c6\u5408:province in (&#8216;shanghai&#8217;, &#8216;beijing&#8217;);<\/div>\n<div>db.user.find({&#8220;address.province&#8221;:{$in:[&#8220;shanghai&#8221;, &#8220;beijing&#8221;]}})<\/div>\n<div>6.\u67e5\u627e\u7701\u4efd\u4e0d\u5728\u4e0a\u6d77\u7684\u96c6\u5408:province not in (&#8216;shanghai&#8217;);<\/div>\n<div>db.user.find({&#8220;address.province&#8221;:{$nin:[&#8220;shanghai&#8221;]}})<\/div>\n<div><\/div>\n<div>7.\u67e5\u627e\u59d3\u540d\u4ee5&#8217;j&#8217;\u5f00\u5934\u5e76\u4e14\u4ee5&#8217;e&#8217;\u7ed3\u5c3e\u7684\u96c6\u5408:name like &#8216;j%e&#8217;;<\/div>\n<div>db.user.find({&#8220;name&#8221;:\/^j\/, &#8220;name&#8221;:\/e$\/})<\/div>\n<div><\/div>\n<div>8.\u6761\u4ef6\u590d\u6742\u7684\u65f6\u5019,\u53ef\u4ee5\u4f7f\u7528$where\u5b50\u53e5,\u5176\u5b9e\u5c31\u662fjs\u7684\u51fd\u6570,\u67e5\u627e\u540d\u79f0\u4e3a&#8217;jack&#8217;\u7684\u96c6\u5408:name=&#8217;jack&#8217;;<\/div>\n<div>db.user.find({$where:function(){return this.name == &#8216;jack&#8217;}})<\/div>\n<div><\/div>\n<div>&#8212; update\u64cd\u4f5c;<\/div>\n<div>1.\u6574\u4f53\u66f4\u65b0\u4e00\u6761\u8bb0\u5f55;<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div>var model=db.user.findOne({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div>model.age=30<\/div>\n<div>db.user.update({&#8220;name&#8221;:&#8221;jack&#8221;}, model)<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div><\/div>\n<div>2.\u4f7f\u7528$inc\u4fee\u6539\u5668\u66f4\u65b0\u4e00\u4e2a\u5b57\u6bb5;<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div>db.user.update({&#8220;name&#8221;:&#8221;jack&#8221;}, {$inc:{&#8220;age&#8221;:-5}})<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div><\/div>\n<div>3.\u4f7f\u7528$set\u4fee\u6539\u5668\u66f4\u65b0\u4e00\u4e2a\u5b57\u6bb5;<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div>db.user.update({&#8220;name&#8221;:&#8221;jack&#8221;}, {$set:{&#8220;age&#8221;:20}})<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;jack&#8221;})<\/div>\n<div><\/div>\n<div>4.upsert\u64cd\u4f5c:\u67e5\u627e\u5230\u5c31\u66f4\u65b0,\u6ca1\u6709\u5c31\u63d2\u5165;<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;kobe&#8221;})<\/div>\n<div>db.user.update({&#8220;name&#8221;:&#8221;kobe&#8221;}, {$set:{&#8220;age&#8221;:20}}, true)<\/div>\n<div>db.user.find({&#8220;name&#8221;:&#8221;kobe&#8221;})<\/div>\n<div><\/div>\n<div>5.multi\u64cd\u4f5c:\u6279\u91cf\u66f4\u65b0\u8bb0\u5f55;<\/div>\n<div>db.user.find()<\/div>\n<div>db.user.update({&#8220;age&#8221;:{$gte:20}}, {$inc:{&#8220;age&#8221;:5}}, false, true)<\/div>\n<div>db.user.find()<\/div>\n<div><\/div>\n<div>&#8212; remove\u64cd\u4f5c;<\/div>\n<div>1.\u6839\u636e\u6761\u4ef6\u5220\u9664;<\/div>\n<div>db.user.find()<\/div>\n<div>db.user.remove({&#8220;name&#8221;:&#8221;kobe&#8221;})<br \/>\ndb.user.find()<\/div>\n<div><\/div>\n<div>2.\u5168\u90e8\u5220\u9664;<\/div>\n<div>db.user.remove()<\/div>\n<div>db.user.find()<br \/>\ndb.user.count()<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>MongoDB\u7684\u589e\u5220\u6539\u67e5\u64cd\u4f5c INSERT\u64cd\u4f5c: \u5355\u6761\u63d2\u5165(\u53ef\u4ee5\u4f7f\u7528js\u7684\u8bed\u6cd5); \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[24,25],"class_list":["post-310","post","type-post","status-publish","format-standard","hentry","category-nosql","tag-mongodb","tag-nosql"],"_links":{"self":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=310"}],"version-history":[{"count":0,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/310\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=310"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}