
¸ÅÊö
Õâ¸öÐÂÊÖÖ¸ÄÏ»áÈÃÄãÊìϤ 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 }.
×îºó£¬ÈÃÎÒÃÇɾ³ýÒ»¸öÓû§Îĵµ:
Ëü»áɾ³ýÓû§ 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»ù×¼²âÊÔ¹¤¾ß¡£ Ëü¿ÉÒÔÓÃÓÚÐÔÄܺͷþÎñÆ÷¹¦ÄܲâÊÔ¡£
|