Golang ArangoDB驱动程序查询绑定变量无效的文档

时间:2020-01-30 04:53:50

标签: go arangodb

我正在尝试使用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-variables

注1:ArangoDB中的文档包含嵌套字段。

0 个答案:

没有答案