Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¿ªÔ´NoSQLÊý¾Ý¿â£ºArangoDBÈëÃÅÖ¸ÄÏ
 
À´Ô´:51CTO ·¢²¼ÓÚ£º 2017-11-15
  3279  次浏览      29
 

¸ÅÊö

Õâ¸öÐÂÊÖÖ¸ÄÏ»áÈÃÄãÊìϤ ArangoDB¡£ÎÒÃǽ«½éÉÜ£¬

1.°²×°²¢ÔËÐÐÒ»¸ö±¾µØ ArangoDB ·þÎñÆ÷

2.ʹÓÃWeb½çÃæÓëÖ®½»»¥

3.½«Ê¾ÀýÊý¾Ý´æ´¢ÔÚÊý¾Ý¿âÖÐ

4.²éѯÊý¾Ý¿âÒÔÔٴμìË÷Êý¾Ý

5.±à¼­ºÍɾ³ýÏÖÓÐÊý¾Ý

°²×°

È¥ arangodb.com/download£¬Ñ¡ÔñÄúµÄ²Ù×÷ϵͳ²¢ÏÂÔØ ArangoDB¡£Èç¹ûÓаü¹ÜÀíÆ÷£¬ÄãÒ²¿ÉÒԲο¼ËµÃ÷ÈçºÎͨ¹ý°ü¹ÜÀíÆ÷½øÐа²×°¡£

ÔÚ Linux ÏÂÈç¹ûÄú°²×°Á˶þ½øÖưü£¬·þÎñÆ÷»á×Ô¶¯Æô¶¯¡£

ÔÚ MacOS X Ï£¬Èç¹ûÄãÓðü¹ÜÀíÆ÷ homebrew °²×° ArangoDB£¬Í¨¹ýÃüÁîÆô¶¯·þÎñ£¬/usr/local/sbin/arangod.

ÔÚ Windows Ï塄 ArangoDB °²×°Îª·þÎñ£¬Ëü»á×Ô¶¯Æô¶¯¡£Î´°²×°Îª·þÎñµÄÇé¿öÏ£¬ÐèÒªÔËÐÐλÓÚ°²×°Ä¿Â¼ÖÐµÄ bin Ŀ¼Ï嵀 arangod.exe¡£Äã¿ÉÄܱØÐëÒÔ¹ÜÀíÔ±Éí·ÝÔËÐУ¬ÒÔ»ñµÃ¶Ô C:\Program Files Ŀ¼µÄдȨÏÞ¡£

¹ØÓÚ°²×° ArangoDB ¸üÉîÈëµÄÐÅÏ¢£¬ÒÔ¼°¿ÉÓÃµÄÆô¶¯²ÎÊý£¬ÔÚ¼¯ÈºÖа²×°µÈ£¬²ÎÔݲװÎĵµ¡£

±£»¤°²×°

ĬÈϰ²×°°üº¬ _system Êý¾Ý¿âºÍ root Óû§¡£

»ùÓÚ Debian µÄÈí¼þ°üºÍ Winsows Installer ¶¼»áÔÚ°²×°¹ý³ÌÖÐѯÎÊÃÜÂë¡£»ùÓÚ RedHat µÄÈí¼þ°üÔò»áÉèÖÃÒ»¸öËæ»úÃÜÂë¡£¶ÔÓÚÆäËü°²×°°ü£¬ÄãÐèÒªÖ´ÐÐ

shell> arango-secure-installation

Õâ»áÒªÇóÊäÈëÒ»¸ö root ÃÜÂë²¢±£´æÆðÀ´¡£

Web ½çÃæ

·þÎñ±¾Éí(arangod)ÊÇ»ùÓÚ HTTP/REST µÄ£¬µ«ÊÇÄã¿ÉÒÔʹÓÃͼÐλ¯µÄ Web ½çÃæÈòÙ×÷±äµÃ¼òµ¥¡£»¹ÓÐ arangosh£¬Ò»¸öÒì²½ shell£¬ÓÃÀ´Óë·þÎñÆ÷½øÐн»»¥¡£Èç¹ûÄãÊÇ¿ª·¢Õߣ¬Äã¿ÉÄܸüϲ»¶Ê¹Óà shell ¶ø²»ÊÇ GUI¡£Ä¿Ç°Ëü»¹Ã»ÓÐÌṩÏñÓï·¨¸ßÁÁÕâÑùµÄ¹¦ÄÜ¡£

ÔÚÏîÄ¿ÖпªÊ¼Ê¹Óà ArangoDB µÄʱºò£¬Äã»áѰÕÒ¹Ù·½»òÉçÇøÊ¹ÓÃÓëÏîÄ¿ÏàͬÓïÑÔ±àдµÄÇý¶¯¡£Çý¶¯ÊµÏÖÁË¿ÉÒÔÔÚÏîÄ¿±à³ÌÓïÑÔÖÐÇáËÉʹÓõıà³Ì½Ó¿Ú£¬Óë·þÎñÆ÷½øÐÐÍêÈ«µØ½»»¥¡£Òò´Ë£¬³ý·ÇÄãÏë×Ô¼ºÐ´Çý¶¯»òÕßÖ±½ÓʹÓÃԭʼ½Ó¿Ú£¬·ñÔòÀíËùµ±È»µØ£¬Ó¦¸ÃºöÂÔ HTTP API¡£

ΪÁËÊìϤÊý¾Ý¿âϵͳÄã¿ÉÒÔ½«Çý¶¯·ÅÖÃÒ»±ß¶øÊ¹Óà web ½çÃæ (´úÂëÃû Aardvark) ½øÐлù±¾½»»¥. web ½çÃæ½«»áÔÚÄãÆô¶¯ arangod Ö®ºó±äΪ¿ÉÓÃ. Äã¿ÉÒÔÔÚä¯ÀÀÆ÷ÖÐͨ¹ý http://localhost:8529 ½øÐзÃÎÊ ¨C Èç¹û²»¿ÉÒÔ£¬Çë²é¿´ ¹ÊÕÏÅųý.

ĬÈÏÇé¿öÏÂ, ÑéÖ¤ÒÑÆôÓÃ. ĬÈÏÓû§Îª root. ÒÀ¾ÝËùÓõݲװ·½·¨£¬°²×°¹ý³Ì»áÌáʾÊäÈë root ÃÜÂë»òÕßĬÈÏ root ÃÜÂëΪ¿Õ (²Î¿´ ÒÔÉÏ).

½ÓÏÂÀ´Äã»á±»Ñ¯ÎÊʹÓÃÄĸöÊý¾Ý¿â¡£ËùÓеķþÎñÆ÷ʵÀý´øÓÐÒ»¸ö _system Êý¾Ý¿â. Ñ¡Ôñ¸ÃÊý¾Ý¿â²¢¼ÌÐø.

È»ºóÄã»á¿´µ½ÈçϵķþÎñÆ÷ͳ¼ÆÃæ°å:

ÒªÁË½â¹ØÓڽӿڵĸüÏêϸÃèÊö£¬²Î¿´ Web Interface.

Êý¾Ý¿â£¬¼¯ºÏÓëÎĵµ

Êý¾Ý¿âÊǼ¯ºÏµÄ¼¯ºÏ. ¼¯ºÏ´æ´¢¼Ç¼, ¼Ç¼±»³ÆÎªÎĵµ. ¼¯ºÏµÈ¼ÛÓÚ RDBMS Öеıí, ¶øÎĵµ¿ÉÒÔ±»ÈÏΪÊDZíÖеÄÐÐ. Çø±ðÔÚÓÚÄã²»ÐèÒªÔ¤Ïȶ¨ÒåÓÐÄÄЩÁÐ (»òÕßÊôÐÔ). ÈÎÒ⼯ºÏÖеÄËùÓÐÎĵµ¿ÉÒÔÓµÓÐÈÎÒâµÄÊôÐÔ¼üÓëÖµ. È»¶øÊµ¼ÊÉÏÒ»¸ö¼¯ºÏÖеÄÎĵµ¾ßÓÐÏàËÆµÄ½á¹¹, µ«ÊÇÊý¾Ý¿âϵͳ±¾Éí²¢²»»á¹ØÐÄ£¬ÎÞÂÛÄãµÄÊý¾ÝÊÇʲôÑù×Ó£¬Êý¾Ý¿âϵͳ¶¼»áÔÚÆäÉÏÖ´ÐÐÎȶ¨¶ø¿ìËٵIJÙ×÷.

ÏÖÔÚÄã¿ÉÒÔÍ£ÁôÔÚĬÈ쵀 _system Êý¾Ý¿âÖв¢Ê¹Óà web ½Ó¿ÚÀ´´´½¨¼¯ºÏÓëÎĵµ. µã»÷ COLLECTIONS ²Ëµ¥Ïî, È»ºóÑ¡Ôñ Add Collection ²Ëµ¥. ΪÆäÖ¸¶¨Ò»¸öÃû×Ö£¬ÀýÈç users, ±£³ÖÆäËûµÄÉèÖò»±ä (ÎÒÃÇÏ£ÍûËüÊÇÒ»¸öÎĵµ¼¯ºÏ) ²¢±£´æ. »á³öÏÖÒ»¸ö±ê¼ÇΪ users µÄв˵¥Ïî, Äã¿ÉÒÔµã»÷´ò¿ª.

Ŀ¼»¹Ã»ÓÐÈκÎÎĵµ. µã»÷ÓÒ²à´øÓа×É«¼ÓºÅµÄÂÌɫԲ»·À´´´½¨¸Ã¼¯ºÏÖеĵÚÒ»¸öÎĵµ. ¶Ô»°¿ò»áѯÎÊÄã _key. Äã¿ÉÒÔ½«¸ÃÇøÓòÁô¿Õ²¢µã»÷ Create À´ÈÃÊý¾Ý¾Ýϵͳ¸³ÖµÒ»¸ö×Ô¶¯Éú³É (Ψһ) µÄ¼ü. ×¢Òâ _key ÊôÐÔÊDz»¿ÉÐ޸ĵÄ, ÕâÒâζ×ÅÒ»µ©Îĵµ±»´´½¨Äã²»¿ÉÒÔÐ޸ĸüü. Äã¿ÉÒÔÓÃ×÷Îĵµ¼üµÄÄÚÈÝÔÚÃüÃûÔ¼¶¨ ÖÐÓÐÏàÓ¦µÄÃèÊö.

ÔÚÕâÖÖÇé¿öÏ£¬×Ô¶¯Éú³ÉµÄ¼üÖµÒ²ÐíÊÇ ¡°9883¡± (_key ×ÜÊÇ×Ö·û´®!), ¶øÎĵµ _id Ò²ÐíÊÇ ¡°users/9883¡± . ³ýÁËһЩϵͳÊôÐÔ£¬ÔÚÎĵµÖв¢Ã»ÓÐÆäËûÄÚÈÝ. ÈÃÎÒÃÇͨ¹ýµã»÷ (¿Õ¶ÔÏó) ×ó²àµÄͼ±êÌí¼ÓÒ»¸ö×Ô¶¨ÒåÊôÐÔ, È»ºó Ìí¼Ó. Á½¸öÎı¾ÊäÈë¿ò»á±äµÃ¿ÉÓÃ, FIELD (ÊôÐÔ¼ü) Óë VALUE (ÊôÐÔÖµ). ÊäÈëÃû×Ö×÷Ϊ¼ü£¬ÊäÈëÄãµÄÃû×Ö×÷Ϊֵ. Ìí¼Ó ÁíÒ»¸öÊôÐÔ£¬½«ÆäÃüÃûΪÄêÁ䣬²¢½«ÆäÉèÖÃΪÄãµÄÄêÁä. µã»÷±£´æÀ´±£´æÕâЩÐÞ¸Ä. Èç¹ûÄãµã»÷ ArangoDB ͼ±êÓҲඥµãµÄ¼¯ºÏ: users , Îĵµä¯ÀÀÆ÷½«»áÏÔʾ users ¼¯ºÏÖеÄÎĵµ£¬¶øÄã¿ÉÒÔÔÚÁбíÖп´µ½Äã¸Õ¸Õ´´½¨µÄÎĵµ.

²éѯÊý¾Ý¿â

ÊÇʱºòͨ¹ýAQL(ArangoDB¡¯ query language)ArangoDB²éѯÓïÑÔÀ´È¡µÃÎÒÃǵÄÎĵµÁË¡£ÎÒÃÇ¿ÉÒÔÖ±½Óͨ¹ýÎÒÃÇ´´½¨µÄ_idÊôÐÔ²éÕÒÎĵµ(µ±È»ÎÒÃÇ»¹¿ÉÒÔʹÓÃÆäËüÑ¡Ïî)¡£µã»÷QUERIES²Ëµ¥À¸À´ÏÔʾquery editor(²éѯ±à¼­Æ÷)ÊäÈëÒÔϵÄÄÚÈÝ(¾ßÌåÈ¡¾öÓÚÄãµÄdocument ID)£º

RETURN DOCUMENT("users/9883")

È»ºóµã»÷ExecuteÀ´Æô¶¯²éѯ£¬½á¹ûÈçÏÂËùʾ£º


{
"_key": "9883",
"_id": "users/9883",
"_rev": "9883",
"age": 32,
"name": "John Smith"
}
]

½á¹û³öÏÖÔڱ༭Æ÷Ï·½¡£ÈçÄãËù¼û£¬³ÌÐò·µ»ØÁËÕû¸öÎĵµ£¬°üº¬×ÅϵͳÊôÐÔ¡£DOCUMENT() º¯Êý»á¸ù¾ÝÄãÌṩµÄ_keys»òÕß_ids·µ»ØÒ»ÏµÁлòÕßµ¥¸öÎĵµ¡£ÎÒÃǹܷµ»ØµÄ½á¹û½Ð×ö²éѯ½á¹û£¬ËüÊÇÒ»¸öÊý×飬°üº¬ÁËÎÒÃǵÄÎĵµ²éѯ½á¹û(ÎÒÃÇ¿ÉÄÜ»áµÃµ½²»Ö»Ò»¸öÎĵµ£¬µ«ÊǼ´Ê¹Ö»ÓÐÒ»¸öÎĵµ½á¹û£¬ËüÈÔÈ»»á·µ»Ø×îÉϲãµÄÊý×é)¡£

ÕâÖÖÀàÐ͵IJéѯ³ÆÎªÊý¾Ý·ÃÎʲéѯ¡£ÕâÖÖ²éѯ²»»á´´½¨¡¢¸ü¸Ä»òɾ³ýÊý¾Ý¡£»¹ÓÐÁíÒ»ÖÖÀàÐ͵IJéѯ£¬³ÆÎªÊý¾ÝÐ޸IJéѯ¡£ÈÃÎÒÃÇʹÓÃÐ޸IJéѯ²åÈëµÚ¶þ¸öÎĵµ£º

INSERT { name: "Katie Foster", age: 27 } INTO users

²éѯ·Ç³£ÈÝÒ׿´¶®£º INSERT ¹Ø¼ü´Ê¸æËßArangoDBÎÒÃÇÏë²åÈëһЩ¶«Î÷¡£ºóÃæ½ô¸ú×ŵÄÊÇÎÒÃÇÒª²åÈëµÄ¶«Î÷£¬ÔÚÕâ¸ö°¸ÀýÖÐÊÇÒ»¸öÓµÓÐÁ½¸öÊôÐÔµÄÎĵµ¡£ »¨À¨ºÅ{ } ±íʾÎļþ£¬»òÕß˵ÊǶÔÏó¡£ÎÒÃÇËù˵µÄÎļþÊÇÖ¸¼¯ºÏÖеļǼ¡£µ±ÓÃJSON±àÂëʱ£¬ÎÒÃǽÐËü¶ÔÏó¡£¶ÔÏóÒ²¿ÉÒÔǶÌס£ÏÂÃæ¾Ù¸öÀý×Ó£º

{
"name": {
"first": "Katie",
"last": "Foster"
}
}

INTO ±ØÐë¸úÔÚÿһ¸ö INSERT ²Ù×÷ºóÃæ£¬ºóÃæÔÙ½ÓÉÏÎÒÃÇ´¢´æÎĵµµÄ¼¯ºÏµÄÃû×Ö¡£×¢Ò⼯ºÏµÄÃû×Ö²»±Ø¼ÓÉÏÒýºÅ¡£

Èç¹ûÄãÔËÐÐÉÏÃæµÄ²éѯÓï¾ä£¬»á·µ»ØÒ»¸ö¿ÕÊý×飬ÒòΪÄãûÓÐÓà RETURN ¹Ø¼ü´ÊÖ¸¶¨Òª·µ»ØµÄÄÚÈÝ¡£ RETURN ¹Ø¼ü´ÊÔÚÐ޸IJéѯÖÐÊÇ¿ÉÑ¡Ïµ«ÔÚÊý¾Ý·ÃÎʲéѯÖÐÊDZØÑ¡Ïî¡£¾ÍËãÓÃÉÏ RESULT£¬·µ»ØÖµÒ²¿ÉÄÜÊÇ¿ÕÊý×飬±ÈÈçÖÆ¶¨ÎĵµÎÞ·¨ÕÒµ½µÄÇé¿ö¡£¾¡¹Ü½á¹ûΪ¿Õ£¬ÒÔÉϵIJéѯÈÔÈ»»á´´½¨ÐÂÓû§Îļþ¡£Äã¿ÉÒÔÔÚÎĵµä¯ÀÀÆ÷ÖÐÑéÖ¤ÕâÒ»µã¡£

ÕâÒ»´ÎÎÒÃÇн¨Ò»¸öÓû§£¬²¢ÇÒÈÃеĽá¹û·µ»Ø¡£

INSERT { name: "James Hendrix", age: 69 } INTO users

RETURN NEW

NEW ÊÇÒ»¸öÐéÄâ±äÁ¿£¬Ö¸µÄÊÇÓÃINSERTÓï¾äн¨µÄÎĵµ¡£²éѯ½á¹ûÈçÏ£º

[
{
"_key": "10074",
"_id": "users/10074",
"_rev": "10074",
"age": 69,
"name": "James Hendrix"
}
]

ÏÖÔÚÎÒÃÇÒ»¸öÓÐÈý¸öÓû§ÁË¡£ÈçºÎÓÃÒ»ÌõÓï¾ä·µ»ØÈ«²¿Êý¾ÝÄØ?ÏÂÃæµÄ·½·¨²»Æð×÷Óãº

RETURN DOCUMENT("users/9883")

RETURN DOCUMENT("users/9915")

RETURN DOCUMENT("users/10074"

ÕâÀï½öÓÐÒ»Ìõ RETURN Óï¾ä£¬Èç¹ûÄã³¢ÊÔÖ´ÐУ¬Ôò»áÅ׳öϵͳ´íÎó. DOCUMENT() º¯ÊýÌṩÁËÒ»¸ö²¹³äÇ©ÃûÀ´Ö¸¶¨¶àÎĵµ´¦Àí£¬ËùÒÔÎÒÃÇ¿ÉÒÔ:

RETURN DOCUMENT( ["users/9883", "users/9915", "users/10074"] )

ËùÓÐ3¸öÎĵµµÄ´øÓÐ _ids µÄÊý×é»á±»´«µÝ¸øº¯Êý. Êý×éͨ¹ý·½À¨ºÅ [ ] ±íʾ£¬¶øÆäÔªËØÊ¹ÓöººÅ½øÐзָô.

µ«ÊÇÈç¹ûÎÒÃÇÌí¼Ó¸ü¶àÓû§»áÔõÑùÄØ? ÎÒÃÇͬʱÐèÒªÐ޸IJéѯÀ´»ñÈ¡ÐÂÌí¼ÓµÄÓû§. ¹ØÓÚÎÒÃǵIJéѯ£¬ÎÒÃÇÏ£Íû±í´ïµÄÊÇ: ¡°¶ÔÓÚ users ¼¯ºÏÖеÄÿһ¸öÓû§, ·µ»ØÓû§Îĵµ¡±. ÎÒÃÇ¿ÉÒÔʹÓà FOR Ñ­»·¸ñʽ»¯¸Ã²éѯ:

FOR user IN users

RETURN user

Ëü±í´ïµÄÊÇ¶Ô users ÖеÄËùÓÐÎĵµ½øÐеü´ú²¢Ê¹ÓÃuser ×÷Ϊ±äÁ¿Ãû, ´Ó¶øÎÒÃÇ¿ÉÒÔÓÃÀ´Ö¸´úµ±Ç°Óû§Îĵµ. Ëü¿ÉÒÔ±»³ÆÎª doc, u »ò ahuacatlguacamole, ÕâÈ¡¾öÓÚÄã. È»¶ø½¨ÒéʹÓÃÒ»¸ö¼ò¶Ì²¢×ÔÃèÊöµÄÃû×Ö.

Ñ­»·Ì叿Ëßϵͳ·µ»Ø±äÁ¿ user µÄÖµ, ÕâÊÇÒ»¸öÓû§Îĵµ. ¿ÉÒÔÏñÏÂÃæÕâÑù·µ»ØËùÓÐÓû§Îĵµ:

[
{
"_key": "9915",
"_id": "users/9915",
"_rev": "9915",
"age": 27,
"name": "Katie Foster"
},
{
"_key": "9883",
"_id": "users/9883",
"_rev": "9883",
"age": 32,
"name": "John Smith"
},
{
"_key": "10074",
"_id": "users/10074",
"_rev": "10074",
"age": 69,
"name": "James Hendrix"
}
]

Ò²ÐíÄãÒѾ­×¢Òâµ½·µ»ØµÄÎĵµË³ÐòÓë²åÈë˳Ðò²¢²»Ïàͬ. ArangoDB ²¢²»±£Ö¤ÎĵµË³Ðò£¬³ý·ÇÄãÏÔʽ¶ÔÆä½øÐÐÅÅÐò. ÎÒÃÇ¿ÉÒÔºÜÈÝÒ×Ìí¼ÓÁËÒ»¸ö SORT ²Ù×÷:

FOR user IN users

SORT user._key

RETURN user

ÕâÒÀÈ»²»»á·µ»ØÔ¤ÆÚµÄ½á¹û: James (10074) »áÔÚ John (9883) Óë Katie (9915) ֮ǰ·µ»Ø. Ô­ÒòÔÚÓÚ _key ÊôÐÔÔÚ ArangoDB ÖÐÊÇÒ»¸ö×Ö·û´®£¬¶ø²»ÊÇÒ»¸öÊý×Ö. ×Ö·û´®µÄµ¥¸ö×Ö·û»á±»½øÐбȽÏ. 1 СÓÚ 9 £¬Òò¶ø½á¹ûÊÇ ¡°ÕýÈ·¡±µÄ. Èç¹ûÎÒÃÇÏ£ÍûʹÓÃÊýÖµ×÷Ϊ _key ÊôÐÔµÄÖµ£¬ÎÒÃÇ¿ÉÒÔ½«×Ö·û´®×ª»»ÎªÊý×Ö²¢ÓÃÆä½øÐÐÅÅÐò. È»¶øÕâÑù×öÓÐһЩӰÏìT. ÎÒÃÇ×îºÃÅÅÐòÆäËûÄÚÈÝ. ÄêÁäÔõôÑù?ÒÔ½µÐòÅÅÁÐÂð?

FOR user IN users

SORT user.age DESC

RETURN user

Óû§µÄÊý¾Ý»áÒÔÈçϵÄ˳Ðò·µ»Ø£º James (69), John (32), Katie (27)¡£ÓëÓÃDESC·µ»Ø½µÐò½á¹û²»Í¬£¬ ASC·µ»ØÉýÐò½á¹û¡£ ASCÊÇĬÈϵÄÑ¡Ï¿ÉÒÔÊ¡ÂÔ¡£

ÎÒÃÇ¿ÉÄÜÐèÒª¸ù¾ÝÓû§µÄÄêÁä·µ»ØÒ»¸ö×Ó¼¯¡£ÈÃÎÒÃÇ·µ»Ø30ËêÒÔÉϵÄÓû§µÄÊý¾Ý£º

FOR user IN users

FILTER user.age > 30

SORT user.age

RETURN user

Õâô×ö»á°´Ë³Ðò·µ»ØJohn and James¡£ Katie¡¯s ageµÄÊôÐÔ²»Âú×ãÈýÊ®ËêÒÔÉϵÄÌõ¼þ£¬ËýÖ»ÓÐ27Ë꣬Òò´Ë²»ÔÙ½á¹ûÖ®ÖС£ÎÒÃÇ¿ÉÒÔÐÞ¸ÄËýµÄÄêÁ䣬ʹËýÖØÐ°üº¬ÔÚ·µ»Ø½á¹ûÖ®ÖУ¬Ê¹ÓÃÈçϵIJéѯÓï¾ä£º

UPDATE "9915" WITH { age: 40 } IN users

RETURN NEW

UPDATE ÔÊÐí²¿·Ö±à¼­ÒÑ´æÔÚµÄÎĵµ. ÁíÍâÓÐ REPLACE, »áÒÆ³ýËùÓÐÊôÐÔ (³ýÁË _key Óë _id ±£³Ö²»±ä) ²¢ÇÒ½öÌí¼Ó²¿·ÖÊôÐÔ. ÁíÒ»·½Ãæ UPDATE Ìæ»»Ö¸¶¨µÄÊôÐÔ¶ø±£³ÖÆäËûÊôÐÔ²»±ä.

UPDATE ¹Ø¼ü×Öºó¸úÎĵµ¼ü (»òÕß´øÓÐ _key ÊôÐÔµÄÎĵµ / ¶ÔÏó) À´Ö¸¶¨ÒªÐ޸ĵÄÎĵµ. Òª¸üеÄÊôÐÔ×÷Ϊ¶ÔÏóʹÓà WITH¹Ø¼ü×ÖдÈë. IN ±íʾÔÚÄĸö¼¯ºÏÖÐÖ´ÐиòÙ×÷, ÀàËÆ INTO (ÕâÀïÁ½¸ö¹Ø¼ü×Ö¿ÉÒÔ»¥»»). Èç¹ûÎÒÃÇʹÓà NEW α±äÁ¿Ôò»á·µ»ØÓ¦ÓÃÐ޸ĵÄÈ«²¿Îĵµ:

[
{
"_key": "9915",
"_id": "users/9915",
"_rev": "12864",
"age": 40,
"name": "Katie Foster"
}

Ïà·´Èç¹ûÎÒÃÇʹÓà REPLACE , name ÊôÐԻᶪʧ. ʹÓà UPDATE, ÊôÐԻᱻ±£Áô (Èç¹ûÎÒÃÇÓÐÆäËûµÄÊôÐÔ£¬Ò²Í¬ÑùÊÊÓøùæÔò).

ÈÃÎÒÃÇÔÙ´ÎÔËÐÐ FILTER ²éѯ, µ«ÊÇÕâÒ»´Î½ö·µ»ØÓû§Ãû:

FOR user IN users

FILTER user.age > 30

SORT user.age

RETURN user.name

Õâ»á·µ»ØËùÓÐ3¸öÓû§µÄÃû×Ö:

[

"John Smith",

"Katie Foster",

"James Hendrix"

]

Èç¹û½ö·µ»ØÒ»¸öÊôÐÔµÄ×Ó¼¯£¬Ôò½«Æä³ÆÎªÍ¶Ó°. ÁíÒ»ÖÖͶӰÀàÐÍÊǸıä½á¹ûµÄ½á¹¹:

FOR user IN users

RETURN { userName: user.name, age: user.age }

¸Ã²éѯΪËùÓеÄÓû§Îĵµ¶¨ÒåÁËÊä³ö¸ñʽ. Óû§Ãû×÷Ϊ userName ·µ»Ø£¬¶ø²»ÊÇ name, ÔÚ¸ÃʾÀýÖÐ age ÓëÊôÐÔÐÔ¼üÏàͬ:

[
{
"userName": "James Hendrix",
"age": 69
},
{
"userName": "John Smith",
"age": 32
},
{
"userName": "Katie Foster",
"age": 40
}
]

Ò²¿ÉÒÔ¼ÆËãÐÂÖµ:

FOR user IN users

RETURN CONCAT(user.name, "'s age is ", user.age)

CONCAT() ÊÇÒ»¸ö½«ÔªËغϲ¢Îª×Ö·û´®µÄº¯Êý. ÔÚÕâÀïÎÒÃÇÓÃÆäΪËùÓÐÓû§·µ»ØÒ»¸öÃèÊö. ÕýÈçÄã¿´µ½µÄ£¬½á¹û¼¯ºÏ²¢²»×ÜÊÇÒ»¸ö¶ÔÏóÊý×é:

[

"James Hendrix's age is 69",

"John Smith's age is 32",

"Katie Foster's age is 40"

]

ÏÖÔÚÈÃÎÒÃÇÀ´×öһЩ·è¿ñµÄÊÂÇé: ¶ÔÓÚÓû§¼¯ºÏÖеÄËùÓÐÎĵµ£¬ÔٴζÔËùÓÐÓû§Îĵµ½øÐеü´ú²¢·µ»ØÓû§×éºÏ£¬ÀýÈç John Óë Katie. ¶ÔÓÚ¸ÃÎÊÌ⣬ÎÒÃÇ¿ÉÒÔÔÚÒ»¸öÑ­»·ÄÚ²¿Ê¹ÓÃÒ»¸öÑ­»·À´»ñµÃ²æ»ý (ËùÓÐÓû§¼Ç¼µÄËùÓпÉÄÜ×éºÏ, 3 3 = 9). È»¶øÎÒÃDz¢²»Ï£ÍûµÃµ½ÀàËÆ John + John* µÄ×éºÏ, ËùÒÔÈÃÎÒÃÇʹÓÃÒ»¸ö¹ýÂËÆ÷Ìõ¼þÀ´È¥³ýÀàËÆµÄ×éºÏ:

FOR user1 IN users

FOR user2 IN users

FILTER user1 != user2

RETURN [user1.name, user2.name]

ÎÒÃǵõ½6¶Ô×éºÏ¡£ÀàËÆ James + John Óë John + James µÄ×éºÏÊÇÖØ¸´µÄ£¬µ«ÊÇÒÑ×ã¹»ºÃ:

[
[ "James Hendrix", "John Smith" ],
[ "James Hendrix", "Katie Foster" ],
[ "John Smith", "James Hendrix" ],
[ "John Smith", "Katie Foster" ],
[ "Katie Foster", "James Hendrix" ],
[ "Katie Foster", "John Smith" ]
]

ÎÒÃÇ¿ÉÒÔÏñÏÂÃæÕâÑù¼ÆËãÁ½¸öÄêÁäÖ®ºÍ²¢¼ÆËãһЩеÄÄÚÈÝ:

FOR user1 IN users
FOR user2 IN users
FILTER user1 != user2
RETURN {
pair: [user1.name, user2.name],
sumOfAges: user1.age + user2.age
}

ÎÒÃÇÒýÈëÒ»¸öеÄÊôÐÔ sumOfAges ²¢½«Á½¸öÄêÁäÏà¼Ó×÷ΪÆäÖµ:

[
{
"pair": [ "James Hendrix", "John Smith" ],
"sumOfAges": 101
},
{
"pair": [ "James Hendrix", "Katie Foster" ],
"sumOfAges": 109
},
{
"pair": [ "John Smith", "James Hendrix" ],
"sumOfAges": 101
},
{
"pair": [ "John Smith", "Katie Foster" ],
"sumOfAges": 72
},
{
"pair": [ "Katie Foster", "James Hendrix" ],
"sumOfAges": 109
},
{
"pair": [ "Katie Foster", "John Smith" ],
"sumOfAges": 72
}
]

Èç¹ûÎÒÃÇÏ£Íû¹ýÂËÐÂÊôÐÔÀ´½ö·µ»Ø×ܺÍСÓÚ100µÄ×éºÏ£¬ÎÒÃÇÓ¦¸Ã¶¨ÒåÒ»¸ö±äÁ¿À´ÁÙʱ´æ´¢×ܺͣ¬´Ó¶øÎÒÃÇ¿ÉÒÔÔÚ FILTER Óï¾äÒÔ¼° RETURN Óï¾äÖÐʹÓÃ:

FOR user1 IN users
FOR user2 IN users
FILTER user1 != user2
LET sumOfAges = user1.age + user2.age
FILTER sumOfAges < 100
RETURN {
pair: [user1.name, user2.name],
sumOfAges: sumOfAges
}

LET ¹Ø¼ü×Öºó¸úÖ¸¶¨µÄ±äÁ¿Ãû (sumOfAges), È»ºóÊÇ = ·ûºÅÓëÖµ»ò±í´ïʽÀ´¶¨Òå±äÁ¿µÄÖµ. ÔÚÕâÀïÎÒÃÇÖØÓÃÎÒÃǵıí´ïʽÀ´¼ÆËã×ܺÍ. È»ºóÎÒÃÇʹÓÃÁíÒ»¸ö FILTER À´ÂÔ¹ý²»ÐèÒªµÄ×éºÏ²¢Ê¹ÓÃÎÒÃÇ֮ǰÉùÃ÷µÄ±äÁ¿. ÎÒÃÇʹÓÃÓû§ÃûÓëËù¼ÆËãµÄÄêÁäÖµµÄÊý×é·µ»ØÒ»¸öͶӰ£¬ÎªÐ©ÎÒÃÇÔÙ´ÎʹÓñäÁ¿:

[
{
"pair": [ "John Smith", "Katie Foster" ],
"sumOfAges": 72
},
{
"pair": [ "Katie Foster", "John Smith" ],
"sumOfAges": 72
}
]

СÌùÊ¿: µ±¶¨Òå¶ÔÏóʱ, Èç¹ûËùÒªÇóµÄÊôÐÔ¼üÓëÊôÐÔÖµËùÓõıäÁ¿Ïàͬi, Äã¿ÉÒÔʹÓüòдÐÎʽ: { sumOfAges } Ìæ´ú { sumOfAges: sumOfAges }.

×îºó£¬ÈÃÎÒÃÇɾ³ýÒ»¸öÓû§Îĵµ:

REMOVE "9883" IN users

Ëü»áɾ³ýÓû§ John (_key: ¡°9883¡±). ÎÒÃÇÒ²¿ÉÒÔÔÚÑ­»·ÖÐÒÆ³ýÎĵµ (ͬÑùÊÊÓÃÓÚ INSERT, UPDATE Óë REPLACE):

FOR user IN users
FILTER user.age >= 30
REMOVE user IN users

¸Ã²éѯ»áɾ³ýÄêÁä´óÓÚµÈÓÚ 30 µÄËùÓÐÓû§.

ÈçºÎ¼ÌÐø

ÔÚAQL ÖпÉ̽Ë÷¸ü¶àÄÚÈÝÒÔ¼° ArangoDB ÌṩµÄ¸ü¶à¹¦ÄÜ. ¼ÌÐøÔĶÁÆäËûÕ½ڲ¢Ê¹ÓòâÊÔÊý¾Ý¿âÊÔÑéÒÔ´Ù½øÄãµÄ֪ʶ.

Èç¹ûÄãÏ£ÍûÁ¢¼´±àд¸ü¶àµÄ AQL ²éѯ£¬Çë²é¿´:

1.Êý¾Ý²éѯ: Êý¾Ý·ÃÎÊÓëÐ޸IJéѯ

2.¸ß¼¶²Ù×÷: FOR, FILTER µÄÏêϸÃèÊöÒÔ¼°¸Ã¼ò½éÖÐÎ´Éæ¼°µÄ¸ü¶à²Ù×÷

3.º¯Êý: ËùÌṩº¯ÊýµÄ²ÎÊý

ArangoDB³ÌÐò

ArangoDB°üÓÐÒÔϳÌÐò£º

1.arangod: ArangoDBÊý¾Ý¿âÊØ»¤½ø³Ì. ´Ë·þÎñÆ÷³ÌÐòÖ¼ÔÚ×÷ÎªÊØ»¤³ÌÐò½ø³ÌÔËÐУ¬²¢Í¨¹ýTCP / HTTPÏò¸÷ÖÖ¿Í»§¶ËÁ¬½Óµ½·þÎñÆ÷¡£

2.arangosh: ArangoDB shell. ¿Í»§¶ËʵÏÖread-eval-print-Loop(REPL)²¢Ìṩº¯ÊýÀ´·ÃÎʺ͹ÜÀíArangoDB·þÎñÆ÷¡£

3.arangoimp: ArangoDB·þÎñÆ÷µÄ ÅúÁ¿µ¼ÈëÆ÷ ¡£ËüÖ§³ÖJSONºÍCSV¡£

4.arangodump:ÒÔJSON¸ñʽ´´½¨ArangoDBÊý¾Ý¿â±¸·Ý µÄ¹¤¾ß¡£

5.arangorestore: ½«±¸·ÝÊý¾Ý¼ÓÔØ»ØArangoDBÊý¾Ý¿âµÄ¹¤¾ß¡£

6.arango-dfdb: ArangoDBµÄÊý¾ÝÎļþµ÷ÊÔÆ÷¡£ËüÖ÷ÒªÓÃÓÚ¿ª·¢ArangoDB¡£

7.arangobench: A»ù×¼²âÊÔ¹¤¾ß¡£ Ëü¿ÉÒÔÓÃÓÚÐÔÄܺͷþÎñÆ÷¹¦ÄܲâÊÔ¡£

 
   
3279 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ