Я пытаюсь отладить проблему с помощью Golang драйвера ArangoDB (Go версия go1.13.6 darwin / amd64 , версия ArangoDB 3.6 и golang драйвер github.com / arangodb / go -driver v0.0.0-20200107125107-2a2392e62f69 ). Приведенный ниже код возвращает 0 результатов; даже если один и тот же запрос имеет 2 результата, т.е. bindVars пуст (проверяется выполнением того же запроса через портал) Что здесь не так?
func (s *Service) searchProduct(offset int, count int) (interface{},int64, error){
//FOR doc IN explore SORT BM25(doc) DESC LIMIT 0,10 RETURN doc
queryBuilder := query.NewForQuery(exploreViewName, "doc")
qs := queryBuilder.SortBM25(true).
LIMIT(offset, count).
Return().String()
s.logFactory.Fields().Done().Info(qs)
pCtx := context.Background()
ctx := arangodbdriver.WithQueryCount(pCtx)
// Open database
db, err := s.dbClient.Database(ctx, databaseName)
if err != nil {
return nil, 0, errors.New(err, fmt.Sprintf("failed to open %s database", databaseName))
}
bindVars := map[string]interface{}{}
cursor, err := db.Query(ctx, qs, bindVars)
if err != nil {
return nil, 0, errors.New(err, fmt.Sprintf("failed to query [%s] on %s database", qs, databaseName))
}
defer cursor.Close()
return bindVars, cursor.Count(),nil
}
Кроме того, есть ли возможность использовать struct для привязки результата вместо bindVars := map[string]interface{}{}
Ссылка: https://www.arangodb.com/docs/stable/drivers/go-example-requests.html#querying -documents- with-bind-variable
Примечание 1. Документы в ArangoDB содержат вложенные поля.