¡¡¡¡SchemaÊǹ̶¨²»±äµÄ
¡¡¡¡ÎÒÃÇûÓп¼Âǵ½ÁªÏµÈ˵ÄÖмäÃû×Ö¡¢³öÉúÈÕÆÚ¡¢¹«Ë¾»òְλ¡£ÎÒÃÇÌí¼Ó¶àÉÙ×ֶζ¼Ã»¹Øϵ£¬ÎÒÃǺܿì»áÊܵ½¸üеÄÐèÇóÒªÌí¼Ó±¸×¢¡¢¼ÍÄîÈÕ¡¢¹Øϵ״̬¡¢É罻ýÌåÕ˺š¢ÄÚÍȲâÁ¿Öµ¡¢×îϲ»¶µÄÄÌÀÒÀàÐ͵È×ֶΡ£Ô¤²âËùÓÐÑ¡ÏîÊDz»¿ÉÄܵģ¬Òò´ËÎÒÃÇ¿ÉÄÜÐèÒªÒ»¸ö otherdata ±í£¬ÓÃÀ´´¦ÀíÃû×Ö-Öµ¶Ô¡£
¡¡¡¡Êý¾ÝÊÇËéƬ»¯µÄ
¡¡¡¡¶Ô¿ª·¢Õß»òÕßϵͳ¹ÜÀíÔ±À´Ëµ£¬¼ì²éÊý¾Ý¿â²¢²»ÈÝÒס£³ÌÐòÂß¼»á±äµÃ¸üÂý¡¢¸ü¸´ÔÓ£¬ÒòΪÀûÓõ¥¸ö SELECT ºÍ¶à¸ö JOIN Óï¾ä²éѯÁªÏµÈËÊý¾Ý²»Ì«Êµ¼Ê¡£(Äã¿ÉÒÔÕâô×ö£¬µ«Êǽá¹û¿ÉÄÜÐèÒª°üº¬ telephone£¬email£¬ºÍ address×ֶεÄÿһÖÖ×éºÏ£ºÈç¹ûÓиöÁªÏµÈËÓÐÈý¸öµç»°ºÅÂ룬Îå¸öEmailµØÖ·ºÍÁ½¸öסַ£¬ÄÇôSQL²éѯ½«»á²úÉú30Ìõ½á¹û¡£) ×îºó£¬È«ÎÄËÑË÷ºÜÀ§ÄÑ¡£Èç¹ûÓÐÈËÊäÈë×Ö·û´®¡±SitePoint¡±£¬ÎÒÃDZØÐë¼ì²éËùÓÐµÄ±í£¬¿´¿´ËüÊÇ·ñΪÁªÏµÈËÃû×Ö¡¢µç»°¡¢Email»òÕßסַµÄÒ»²¿·Ö£¬²¢ÇÒÐèÒª×öÏàÓ¦µÄÅÅÐò¡£Èç¹ûÄãÓùýWordPressµÄËÑË÷¹¦ÄÜ£¬Äã¾Í»áÃ÷°×ÕâÓжàÅ°ÐÄ¡£
¡¡¡¡Ñ¡ÔñNoSQL
¡¡¡¡ÎÒÃǵÄÁªÏµÈËÊý¾Ý¹Ø×¢µÄÊÇÈË¡£ËûÃÇÄÑÒÔÔ¤²â£¬ÔÚ²»Í¬µÄʱ¼äÓв»Í¬µÄÐèÇó¡£Ê¹ÓÃNoSQLÊý¾Ý¿â£¬ÁªÏµÈËÁÐ±í½«»á´ÓÖÐÊÜÒæ¡£Êý¾Ý¿â½«Ò»¸öÁªÏµÈ˵ÄËùÓÐÊý¾Ý´æ´¢ÔÚÒ»¸öµ¥¶ÀµÄÎĵµÀïµÄcontacts ¼¯ºÏÀï¡£
{ name: [ "Billy", "Bob", "Jones" ], company: "Fake Goods Corp", jobtitle: "Vice President of Data Management", telephone: { home: "0123456789", mobile: "9876543210", work: "2244668800" }, email: { personal: "bob@myhomeemail.net", work: "bob@myworkemail.com" }, address: { home: { line1: "10 Non-Existent Street", city: "Nowhere", country: "Australia" } }, birthdate: ISODate("1980-01-01T00:00:00.000Z"), twitter: '@bobsfakeaccount', note: "Don't trust this guy", weight: "200lb", photo: "52e86ad749e0b817d25c8892.jpg"} |
¡¡¡¡ÔÚÕâ¸öÀý×ÓÀÎÒÃÇûÓд洢ÁªÏµÈ˵ÄÍ·ÏλòÕßÐÔ±ð£¬ÎÒÃÇ»¹Ìí¼ÓÁËһЩÊý¾Ý£¬¶øÕâЩÊý¾Ý²»ÐèÒªÓ¦Óõ½ÈκÎÆäËûÁªÏµÈË¡£Ã»¹Øϵ¡ª¡ªÎÒÃǵÄNoSQLÊý¾Ý¿â²»»á½éÒ⣬ÎÒÃÇ»¹¿ÉÒÔËæÒâÌí¼Ó»òÒƳý×ֶΡ£
¡¡¡¡ÓÉÓÚÁªÏµÈËÊý¾ÝÔÚµ¥¶ÀµÄÎĵµÀÎÒÃÇ¿ÉÒÔÓÃÒ»Ìõ²éѯÓï¾ä»ñÈ¡Ò»²¿·Ö»òÈ«²¿ÐÅÏ¢¡£È«ÎÄËÑË÷Ò²±äµÃ¼òµ¥£»ÔÚMongoDBÀÎÒÃÇ¿ÉÒÔÕâÑù¶¨Òå contact ÖеÄËùÓÐÎı¾×ֶεÄË÷Òý£º
¡¡¡¡db.contact.createIndex({ "$**": "text" });
¡¡¡¡È»ºóÖ´ÐÐÈ«ÎÄËÑË÷£º
¡¡¡¡db.contact.find({
¡¡¡¡$text: { $search: "something" }});
¡¡¡¡³¡¾°¶þ£ºÉç½»ÍøÂç
¡¡¡¡Éç½»ÍøÂç¿ÉÄÜʹÓÃÀàËƵÄÁªÏµÈËÊý¾Ý´æ´¢£¬µ«ÊÇËü»á¸ù¾Ý¹¦Äܼ¯ºÏÀ©Õ¹£¬±ÈÈç¹ØϵÁ´¡¢×´Ì¬¸üС¢·¢ËÍÏûÏ¢ºÍ¡±ÔÞ¡°¡£ÕâЩ¹¦ÄÜ¿ÉÄÜ»á¸ù¾ÝÓû§ÐèÇóÀ´ÊµÏÖ»òÕßÒƳý¡ª¡ªÎÞ·¨Ô¤²âËüÃÇ»áÔõÑùÑݽø¡£
¡¡¡¡ÁíÍâ:
¡¡¡¡´ó²¿·ÖµÄÊý¾Ý¸üж¼À´×Ôµ¥¸öÔ´£ºÓû§¡£ÈκÎʱºòÎÒÃDz»Ì«¿ÉÄÜͬʱ¸üÐÂÁ½Ìõ»ò¸ü¶à¼Ç¼£¬Òò´Ë²»ÒªÇóÀàËÆÊÂÎñ¿ØÖƵŦÄÜ¡£
¡¡¡¡¾¡¹ÜÓÐЩÓû§¿ÉÄÜÈÏΪ£¬×´Ì¬¸üÐÂʧ°Ü²»¿ÉÄÜÒýÆðϵͳ±ÀÀ£»ò¾¼ÃËðʧ¡£Ó¦ÓóÌÐòµÄ½Ó¿ÚºÍÐÔÄܱÈÊý¾ÝÍêÕûÐÔÓÅÏȼ¶¸ü¸ß¡£
¡¡¡¡NoSQL¿´À´ÊǸöºÃµÄ·½°¸¡£ËüÔÊÐíÎÒÃÇ¿ìËÙµØʵÏÖ´æ´¢²»Í¬ÀàÐÍÊý¾ÝµÄ¹¦ÄÜ¡£ÀýÈ磬¿ÉÒÔÓõ¥¸öÎĵµÀïµÄ status ¼¯ºÏÌæ»»ËùÓÐÓû§µÄ¹ýʱµÄ״̬¸üС£
{ user_id: ObjectID("65f82bda42e7b8c76f5c1969"), update: [ { date: ISODate("2015-09-18T10:02:47.620Z"), text: "feeling more positive today" }, { date: ISODate("2015-09-17T13:14:20.789Z"), text: "spending far too much time here" } { date: ISODate("2015-09-17T12:33:02.132Z"), text: "considering my life choices" } ]} |
¡¡¡¡Îĵµ¿ÉÄÜ»á±äµÃºÜ³¤£¬µ«ÎÒÃÇ¿ÉÒÔ»ñÈ¡Êý×éµÄ×Ó¼¯£¬±ÈÈç×î½üµÄ¸üС£Ã¿¸öÓû§µÄËùÓеÄÀúʷ״̬¼Ç¼¶¼Äܱ»¿ìËÙËÑË÷µ½¡£
¡¡¡¡ÏÖÔÚ¼ÙÉèÎÒÃÇÏëÔÚ·¢²¼¸üеÄʱºòÒýÈë±íÇé·ûºÅÑ¡Ôñ¡£ÕâÉæ¼°µ½¸ø update Êý×éÀïµÄмǼÌí¼ÓͼÒýÓᣲ»Ïñ SQL ´æ´¢£¬Ã»±ØÒª°Ñ֮ǰÏûÏ¢ÀïµÄ±íÇé·ûºÅÖÃΪ NULL¡ª¡ªÎÒÃǵijÌÐòÂß¼¿ÉÒÔÏÔʾĬÈÏͼƬ»òÕßûÓÐͼƬ£¬Èç¹ûûÓÐÉèÖñíÇé·ûºÅµÄ»°¡£
¡¡¡¡³¡¾°Èý£º²Ö¿â¹ÜÀíϵͳ
¡¡¡¡¿¼ÂÇÒ»¸ö¼à¿Ø²Ö¿â»õÎïµÄϵͳ¡£ÎÒÃÇÐèÒª¼Ç¼£º
¡¡¡¡ËÍ´ï²Ö¿â²¢±»·ÖÅäµ½Ö¸¶¨Î»ÖõÄÎïÆ·
¡¡¡¡²Ö¿âÄÚÎïÆ·µÄÒƶ¯£¬Ò²¾ÍÊÇÖØÐÂÕûÀí¿â´æ£¬ÒÔ±ãÈÃͬÑùµÄÎïÆ··ÅÔÚÏàÁÚµÄλÖÃ
¡¡¡¡¶©µ¥ÒÔ¼°ºóÐø½«ÎïÆ·°á³ö²Ö¿â£¬×¼±¸·¢»õ
¡¡¡¡ÎÒÃǵÄÊý¾ÝÐèÇó£º
¡¡¡¡Í¨ÓõÄÎïÆ·ÐÅÏ¢£¬±ÈÈç°ü×°ÊýÁ¿¡¢³ß´çºÍÑÕÉ«µÈ¿É±»´æ´¢£¬µ«ÕâЩÊÇÎÒÃÇ¿ÉÒÔʶ±ð²¢Ó¦Óõ½ÈκÎÎïÆ·ÉϵÄÀëÉ¢Êý¾Ý¡£ÎÒÃDz»Ì«¿ÉÄܹØעϸ½Ú£¬ÀýÈç±Ê¼Ç±¾´¦ÀíÆ÷ËٶȻòÕßÖÇÄÜÊÖ»úµÄµç³ØÊÙÃü¡£
¡¡¡¡×îС»¯³ö´íµÄ¿ÉÄÜÊDZØÒªµÄ¡£ÎÒÃDz»ÄÜÈÃÎïƷƾ¿ÕÏûʧ»òÕßÒƵ½ÒѾÓбðµÄÎïÆ·´æ·ÅµÄλÖá£
¡¡¡¡¼òµ¥À´Ëµ£¬ÎÒÃÇÔڼǼÎïÆ·´ÓÒ»¸öÎïÀíÇøÓòµ½ÁíÒ»¸öÎïÀíÇøÓòµÄתÒÆ¡ª¡ª»òÕß´ÓAλÖÃÒÆ×ߣ¬·Åµ½BλÖá£ÕâÊÇͬһ¸ö¶¯×÷µÄÁ½´Î¸üС£
¡¡¡¡ÎÒÃÇÐèÒªÒ»¸ö¾ß±¸Ç¿ÖÆÊý¾ÝÍêÕûÐÔºÍÊÂÎñÖ§³ÖµÄ½¡×³´æ´¢ÏµÍ³¡££¨µ±Ç°£©Ö»ÓÐ SQL Êý¾Ý¿âÂú×ãÕâЩÐèÇó¡£
¡¡¡¡±íÏÖ×Ô¼º!
¡¡¡¡ÎÒÏ£ÍûÕâЩ³¡¾°ÓÐËù°ïÖú£¬µ«ÊÇÿ¸öÏîÄ¿ÊDz»Í¬µÄ£¬×îÖÕ£¬ÄãÐèÒª×ö³ö×Ô¼ºµÄ¾ö¶¨¡£(ËäÈ»£¬ÎÒÃÇ¿ª·¢ÈËÔ±Éó¤ÓÚÖ¤Ã÷ÎÒÃǵļ¼ÊõÑ¡Ôñ£¬²»¹ÜËûÃÇÓжàºÃ!)
¡¡¡¡×îºÃµÄ½¨Òé:ÏÔ¶Äã×Ô¼º¾¡¿ÉÄܶàµÄ¼¼Êõ¡£ÕâЩ֪ʶ¿ÉÒÔÈÃÄã¶ÔSQL»òÕßNoSQL×ö³öÒ»¸öÀíÐÔºÍÇé¸ÐÉϹ«ÕýµÄÅжϡ£×£ÄúºÃÔË¡£