注解“使用绑定变量查询文档”下面的代码未生成预期的记录计数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() {
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
1条答案
按热度按时间nuypyhwy1#
我可以看到你有
Book
结构的字段NoPages
在json定义中公开为no_pages
。你能尝试将查询改为: