我正在尝试使用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{}{}
来绑定结果
注1:ArangoDB中的文档包含嵌套字段。