neo4j в Golang Children:: Инструментирование OTEL neo4j Запись данных // Создаем сессию session := driver.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite}) defer func() { _ = session.Close(ctx) }() // Запись данных _, err = session.ExecuteWrite(ctx, func(tx neo4j.ManagedTransaction) (any, error) { // Создание пользователей queries := []struct { query string params map[string]interface{} }{ {query: "MERGE (a:Person {name: $name, age: $age})", params: map[string]interface{}{"name": "Alice", "age": 30}}, {query: "MERGE (b:Person {name: $name, age: $age})", params: map[string]interface{}{"name": "Bob", "age": 25}}, {query: "MERGE (c:Person {name: $name, age: $age})", params: map[string]interface{}{"name": "Charlie", "age": 35}}, } for _, q := range queries { _, err := tx.Run(ctx, q.query, q.params) if err != nil { return nil, err } } Чтение данных // Чтение данных: находим друзей для Alice _, err = session.ExecuteRead(ctx, func(tx neo4j.ManagedTransaction) (any, error) { result, err := tx.Run(ctx, "MATCH (a:Person {name: $name})-[:FRIENDS]->(friend) "+ "RETURN friend.name AS name, friend.age AS age", map[string]interface{}{"name": "Alice"}) if err != nil { return nil, err } // Обработка результата fmt.Println("Друзья Alice:") for result.Next(ctx) { record := result.Record() name, _ := record.Get("name") age, _ := record.Get("age") fmt.Printf("- %s (Возраст: %d)\n", name, age) } return nil, result.Err() }) if err != nil { log.Fatalf("Ошибка выполнения чтения: %v", err) }