ArangoDB函数db.Query(ctx,Query,bindVars)不返回任何数据
注释“使用绑定变量查询文档”下面的代码未生成预期的记录计数1ArangoDB函数db.Query(ctx,Query,bindVars)不返回任何数据,arangodb,Arangodb,注释“使用绑定变量查询文档”下面的代码未生成预期的记录计数1 import ( "fmt" driver "github.com/arangodb/go-driver" "github.com/arangodb/go-driver/http" "context" ) type Book struct { Title string `json:"title"` NoPages int `json:"no_pages"` } func main() {
import (
"fmt"
driver "github.com/arangodb/go-driver"
"github.com/arangodb/go-driver/http"
"context"
)
type Book struct {
Title string `json:"title"`
NoPages int `json:"no_pages"`
}
func main() {
conn, err := http.NewConnection(http.ConnectionConfig {
Endpoints: []string{"http://root@localhost:8529"},
})
if err != nil { panic(err) }
c, err := driver.NewClient(driver.ClientConfig{
Connection: conn,
})
// Open "examples_books" database
db, err := c.Database(nil, "examples_books")
if err != nil { panic(err) }
// Open "books" collection
col, err := db.Collection(nil, "books")
if err != nil { panic(err) }
// Create document
book := Book{
Title: "ArangoDB Cookbook",
NoPages: 257,
}
meta, err := col.CreateDocument(nil, book)
if err != nil { panic(err) }
fmt.Printf("Created document in collection '%s' in database
'%s'\n", col.Name(), db.Name())
// Read the document back
var result Book
if _, err := col.ReadDocument(nil, meta.Key, &result); err != nil
{ panic(err)}
fmt.Printf("Read book '%+v'\n", result)
//Querying documents with bind variables
ctx := context.Background()
query := "FOR d IN books FILTER d.NoPages == @noPages RETURN d"
bindVars := map[string]interface{}{
"noPages": 257,
}
cursor, err := db.Query(ctx, query, bindVars)
if err != nil {
panic(err)
}
defer cursor.Close()
resultCount := cursor.Count()
fmt.Printf("Number of records = %+v\n", resultCount)
}
Go版本1.13.7;ArangoDB 3.6.1,MacOS Catalina 10.15.3我可以看到,在json定义中,struct Book的字段nopage被公开为无页面。您能否尝试将查询更改为:
query := "FOR d IN books FILTER d.no_pages == @noPages RETURN d"