@@ -284,30 +284,22 @@ var _ = Describe("Examples", func() {
284
284
285
285
// tag::hello-world[]
286
286
func helloWorld (uri , username , password string , encrypted bool ) (string , error ) {
287
- var (
288
- err error
289
- driver neo4j.Driver
290
- session neo4j.Session
291
- result neo4j.Result
292
- greeting interface {}
293
- )
294
-
295
- driver , err = neo4j .NewDriver (uri , neo4j .BasicAuth (username , password , "" ), func (c * neo4j.Config ) {
287
+ driver , err := neo4j .NewDriver (uri , neo4j .BasicAuth (username , password , "" ), func (c * neo4j.Config ) {
296
288
c .Encrypted = encrypted
297
289
})
298
290
if err != nil {
299
291
return "" , err
300
292
}
301
293
defer driver .Close ()
302
294
303
- session , err = driver .Session (neo4j .AccessModeWrite )
295
+ session , err : = driver .Session (neo4j .AccessModeWrite )
304
296
if err != nil {
305
297
return "" , err
306
298
}
307
299
defer session .Close ()
308
300
309
- greeting , err = session .WriteTransaction (func (transaction neo4j.Transaction ) (interface {}, error ) {
310
- result , err = transaction .Run (
301
+ greeting , err : = session .WriteTransaction (func (transaction neo4j.Transaction ) (interface {}, error ) {
302
+ result , err : = transaction .Run (
311
303
"CREATE (a:Greeting) SET a.message = $message RETURN a.message + ', from node ' + id(a)" ,
312
304
map [string ]interface {}{"message" : "hello, world" })
313
305
if err != nil {
@@ -391,6 +383,40 @@ func createDriverWithAddressResolver(virtualURI, username, password string, encr
391
383
})
392
384
}
393
385
386
+ func addPerson (name string ) error {
387
+ const (
388
+ username = "neo4j"
389
+ password = "some password"
390
+ )
391
+
392
+ driver , err := createDriverWithAddressResolver ("bolt+routing://x.acme.com" , username , password , false ,
393
+ neo4j .NewServerAddress ("a.acme.com" , "7676" ),
394
+ neo4j .NewServerAddress ("b.acme.com" , "8787" ),
395
+ neo4j .NewServerAddress ("c.acme.com" , "9898" ))
396
+ if err != nil {
397
+ return err
398
+ }
399
+ defer driver .Close ()
400
+
401
+ session , err := driver .Session (neo4j .AccessModeWrite )
402
+ if err != nil {
403
+ return err
404
+ }
405
+ defer session .Close ()
406
+
407
+ result , err := session .Run ("CREATE (n:Person { name: $name})" , map [string ]interface {}{"name" : name })
408
+ if err != nil {
409
+ return err
410
+ }
411
+
412
+ _ , err = result .Consume ()
413
+ if err != nil {
414
+ return err
415
+ }
416
+
417
+ return nil
418
+ }
419
+
394
420
// end::config-custom-resolver[]
395
421
396
422
// tag::config-connection-pool[]
@@ -426,17 +452,15 @@ func createDriverWithMaxRetryTime(uri, username, password string, encrypted bool
426
452
427
453
// tag::service-unavailable[]
428
454
func createItem (driver neo4j.Driver ) error {
429
- var err error
430
- var session neo4j.Session
431
- var result neo4j.Result
432
-
433
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
455
+ session , err := driver .Session (neo4j .AccessModeWrite )
456
+ if err != nil {
434
457
return err
435
458
}
436
459
defer session .Close ()
437
460
438
461
_ , err = session .WriteTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
439
- if result , err = tx .Run ("CREATE (a:Item)" , nil ); err != nil {
462
+ result , err := tx .Run ("CREATE (a:Item)" , nil )
463
+ if err != nil {
440
464
return nil , err
441
465
}
442
466
@@ -461,16 +485,14 @@ func addItem(driver neo4j.Driver) bool {
461
485
// end::service-unavailable[]
462
486
463
487
func countNodes (driver neo4j.Driver , label string , property string , value string ) (int64 , error ) {
464
- var err error
465
- var session neo4j.Session
466
- var result neo4j.Result
467
-
468
- if session , err = driver .Session (neo4j .AccessModeRead ); err != nil {
488
+ session , err := driver .Session (neo4j .AccessModeRead )
489
+ if err != nil {
469
490
return - 1 , err
470
491
}
471
492
defer session .Close ()
472
493
473
- if result , err = session .Run (fmt .Sprintf ("MATCH (a:%s {%s: $value}) RETURN count(a)" , label , property ), map [string ]interface {}{"value" : value }); err != nil {
494
+ result , err := session .Run (fmt .Sprintf ("MATCH (a:%s {%s: $value}) RETURN count(a)" , label , property ), map [string ]interface {}{"value" : value })
495
+ if err != nil {
474
496
return - 1 , err
475
497
}
476
498
@@ -483,16 +505,14 @@ func countNodes(driver neo4j.Driver, label string, property string, value string
483
505
484
506
// tag::session[]
485
507
func addPersonInSession (driver neo4j.Driver , name string ) error {
486
- var err error
487
- var session neo4j.Session
488
- var result neo4j.Result
489
-
490
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
508
+ session , err := driver .Session (neo4j .AccessModeWrite )
509
+ if err != nil {
491
510
return err
492
511
}
493
512
defer session .Close ()
494
513
495
- if result , err = session .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name }); err != nil {
514
+ result , err := session .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name })
515
+ if err != nil {
496
516
return err
497
517
}
498
518
@@ -507,16 +527,14 @@ func addPersonInSession(driver neo4j.Driver, name string) error {
507
527
508
528
// tag::autocommit-transaction[]
509
529
func addPersonInAutoCommitTx (driver neo4j.Driver , name string ) error {
510
- var err error
511
- var session neo4j.Session
512
- var result neo4j.Result
513
-
514
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
530
+ session , err := driver .Session (neo4j .AccessModeWrite )
531
+ if err != nil {
515
532
return err
516
533
}
517
534
defer session .Close ()
518
535
519
- if result , err = session .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name }); err != nil {
536
+ result , err := session .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name })
537
+ if err != nil {
520
538
return err
521
539
}
522
540
@@ -531,17 +549,15 @@ func addPersonInAutoCommitTx(driver neo4j.Driver, name string) error {
531
549
532
550
// tag::transaction-function[]
533
551
func addPersonInTxFunc (driver neo4j.Driver , name string ) error {
534
- var err error
535
- var session neo4j.Session
536
- var result neo4j.Result
537
-
538
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
552
+ session , err := driver .Session (neo4j .AccessModeWrite )
553
+ if err != nil {
539
554
return err
540
555
}
541
556
defer session .Close ()
542
557
543
558
_ , err = session .WriteTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
544
- if result , err = tx .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name }); err != nil {
559
+ result , err := tx .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name })
560
+ if err != nil {
545
561
return nil , err
546
562
}
547
563
@@ -586,10 +602,8 @@ func makeFriendTxFunc(person1 string, person2 string) neo4j.TransactionWork {
586
602
587
603
func printFriendsTxFunc () neo4j.TransactionWork {
588
604
return func (tx neo4j.Transaction ) (interface {}, error ) {
589
- var err error
590
- var result neo4j.Result
591
-
592
- if result , err = tx .Run ("MATCH (a)-[:KNOWS]->(b) RETURN a.name, b.name" , nil ); err != nil {
605
+ result , err := tx .Run ("MATCH (a)-[:KNOWS]->(b) RETURN a.name, b.name" , nil )
606
+ if err != nil {
593
607
return nil , err
594
608
}
595
609
@@ -602,10 +616,8 @@ func printFriendsTxFunc() neo4j.TransactionWork {
602
616
}
603
617
604
618
func addAndEmploy (driver neo4j.Driver , person string , company string ) (string , error ) {
605
- var err error
606
- var session neo4j.Session
607
-
608
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
619
+ session , err := driver .Session (neo4j .AccessModeWrite )
620
+ if err != nil {
609
621
return "" , err
610
622
}
611
623
defer session .Close ()
@@ -624,10 +636,8 @@ func addAndEmploy(driver neo4j.Driver, person string, company string) (string, e
624
636
}
625
637
626
638
func makeFriend (driver neo4j.Driver , person1 string , person2 string , bookmarks ... string ) (string , error ) {
627
- var err error
628
- var session neo4j.Session
629
-
630
- if session , err = driver .Session (neo4j .AccessModeWrite , bookmarks ... ); err != nil {
639
+ session , err := driver .Session (neo4j .AccessModeWrite , bookmarks ... )
640
+ if err != nil {
631
641
return "" , err
632
642
}
633
643
defer session .Close ()
@@ -642,7 +652,6 @@ func makeFriend(driver neo4j.Driver, person1 string, person2 string, bookmarks .
642
652
func addEmployAndMakeFriends (driver neo4j.Driver ) error {
643
653
var bookmark1 , bookmark2 , bookmark3 string
644
654
var err error
645
- var session neo4j.Session
646
655
647
656
if bookmark1 , err = addAndEmploy (driver , "Alice" , "Wayne Enterprises" ); err != nil {
648
657
return err
@@ -656,7 +665,8 @@ func addEmployAndMakeFriends(driver neo4j.Driver) error {
656
665
return err
657
666
}
658
667
659
- if session , err = driver .Session (neo4j .AccessModeRead , bookmark1 , bookmark2 , bookmark3 ); err != nil {
668
+ session , err := driver .Session (neo4j .AccessModeRead , bookmark1 , bookmark2 , bookmark3 )
669
+ if err != nil {
660
670
return err
661
671
}
662
672
defer session .Close ()
@@ -673,10 +683,8 @@ func addEmployAndMakeFriends(driver neo4j.Driver) error {
673
683
// tag::read-write-transaction[]
674
684
func addPersonNodeTxFunc (name string ) neo4j.TransactionWork {
675
685
return func (tx neo4j.Transaction ) (interface {}, error ) {
676
- var err error
677
- var result neo4j.Result
678
-
679
- if result , err = tx .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name }); err != nil {
686
+ result , err := tx .Run ("CREATE (a:Person {name: $name})" , map [string ]interface {}{"name" : name })
687
+ if err != nil {
680
688
return nil , err
681
689
}
682
690
@@ -686,10 +694,8 @@ func addPersonNodeTxFunc(name string) neo4j.TransactionWork {
686
694
687
695
func matchPersonNodeTxFunc (name string ) neo4j.TransactionWork {
688
696
return func (tx neo4j.Transaction ) (interface {}, error ) {
689
- var err error
690
- var result neo4j.Result
691
-
692
- if result , err = tx .Run ("MATCH (a:Person {name: $name}) RETURN id(a)" , map [string ]interface {}{"name" : name }); err != nil {
697
+ result , err := tx .Run ("MATCH (a:Person {name: $name}) RETURN id(a)" , map [string ]interface {}{"name" : name })
698
+ if err != nil {
693
699
return nil , err
694
700
}
695
701
@@ -702,11 +708,8 @@ func matchPersonNodeTxFunc(name string) neo4j.TransactionWork {
702
708
}
703
709
704
710
func addPersonNode (driver neo4j.Driver , name string ) (int64 , error ) {
705
- var err error
706
- var id interface {}
707
- var session neo4j.Session
708
-
709
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
711
+ session , err := driver .Session (neo4j .AccessModeWrite )
712
+ if err != nil {
710
713
return - 1 , err
711
714
}
712
715
defer session .Close ()
@@ -715,6 +718,7 @@ func addPersonNode(driver neo4j.Driver, name string) (int64, error) {
715
718
return - 1 , err
716
719
}
717
720
721
+ var id interface {}
718
722
if id , err = session .ReadTransaction (matchPersonNodeTxFunc (name )); err != nil {
719
723
return - 1 , err
720
724
}
@@ -726,20 +730,17 @@ func addPersonNode(driver neo4j.Driver, name string) (int64, error) {
726
730
727
731
// tag::result-consume[]
728
732
func getPeople (driver neo4j.Driver ) ([]string , error ) {
729
- var people interface {}
730
- var err error
731
- var session neo4j.Session
732
-
733
- if session , err = driver .Session (neo4j .AccessModeRead ); err != nil {
733
+ session , err := driver .Session (neo4j .AccessModeRead )
734
+ if err != nil {
734
735
return nil , err
735
736
}
736
737
defer session .Close ()
737
738
738
- people , err = session .ReadTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
739
+ people , err : = session .ReadTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
739
740
var list []string
740
- var result neo4j.Result
741
741
742
- if result , err = tx .Run ("MATCH (a:Person) RETURN a.name ORDER BY a.name" , nil ); err != nil {
742
+ result , err := tx .Run ("MATCH (a:Person) RETURN a.name ORDER BY a.name" , nil )
743
+ if err != nil {
743
744
return nil , err
744
745
}
745
746
@@ -764,23 +765,20 @@ func getPeople(driver neo4j.Driver) ([]string, error) {
764
765
765
766
// tag::result-retain[]
766
767
func addPersonsAsEmployees (driver neo4j.Driver , companyName string ) (int , error ) {
767
- var session neo4j.Session
768
- var err error
769
- var persons []neo4j.Record
770
- var employees int
771
-
772
- if session , err = driver .Session (neo4j .AccessModeWrite ); err != nil {
768
+ session , err := driver .Session (neo4j .AccessModeWrite )
769
+ if err != nil {
773
770
return 0 , err
774
771
}
775
772
defer session .Close ()
776
773
777
- persons , err = neo4j .Collect (session .ReadTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
774
+ persons , err : = neo4j .Collect (session .ReadTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
778
775
return tx .Run ("MATCH (a:Person) RETURN a.name AS name" , nil )
779
776
}))
780
777
if err != nil {
781
778
return 0 , err
782
779
}
783
780
781
+ employees := 0
784
782
for _ , person := range persons {
785
783
_ , err = session .WriteTransaction (func (tx neo4j.Transaction ) (interface {}, error ) {
786
784
return tx .Run ("MATCH (emp:Person {name: $person_name}) " +
0 commit comments