gpt4 book ai didi

go - 使用 Go 驱动程序在 RethinkDB 中按嵌套对象排序

转载 作者:IT王子 更新时间:2023-10-29 01:46:09 25 4
gpt4 key购买 nike

如何使用 Go 驱动程序按嵌套对象的顺序从 RethinkDB 中获取数据?

让我们假设我的表中有这样的 json:

[
{
"id": "1",
"date": "2001-01-15",
"time": {
"begin": "09:00",
"end": "10:30"
}
},
{
"id": "2",
"date": "2001-01-16",
"time": {
"begin": "08:30",
"end": "10:30"
}
}
]

Go 模型是:

type MyTime struct {
Begin time.Time `json:"begin"`
End time.Time `json:"end"`
}

type Something struct {
Id string `json:"id"`
Date time.Time `json:"date"`
Time MyTime `json:"time"`
}

如何通过 id 订购的示例:

var result []Something
db.Table("someTable").OrderBy("id").Run(session).All(&result)

我试过像这样按时间开始排序(认为该方法与 ArangoDB 中的方法相同,但显然不是):

 var result []Something
db.Table("someTable").OrderBy("time.begin").Run(session).All(&result)

我在官方网站上看到了一个示例,它是如何使用 native javascript 驱动程序工作的

Example: Use nested field syntax to sort on fields from subdocuments. (You can also 
create indexes on nested fields using this syntax with indexCreate.)

r.table('user').orderBy(r.row('group')('id')).run(conn, callback)

但目前还不清楚如何将其转换为 Go。

知道如何让它发挥作用吗?

最佳答案

你可以使用一个函数,像这样:

db.Table("someTable").OrderBy(func(row Term) Term {
return row.Field("time").Field("begin")
}).Run(session).All(&result)

关于go - 使用 Go 驱动程序在 RethinkDB 中按嵌套对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com