草庐IT

RethinkDB

全部标签

go - rethinkdb "Too many open files"错误

我使用了https://github.com/dancannon/gorethink提供的golang驱动.据我了解,我从不关闭连接并重新连接。我无法关闭连接,因为我不知道如何获得连接。我所知道的是如何获取session,并开始认为我不知道获取session的正确方法。所以我的问题是:如何修复错误?如何关闭连接并重新连接?编辑:@OneOfOne不是一些,基本都是相关代码://Howidefinesession:session,e:=r.Connect(r.ConnectOpts{Address:"localhost:28015",Database:"database",MaxActi

go - RethinkDB changefeed 使用 `now()` 过滤

我希望使用RethinkDBchangefeeds创建一种“时间触发”:returnr.Table("Checks").Filter(r.Row.Field("ScheduledFor").Le(r.Now())).Changes(r.ChangesOpts{IncludeInitial:true,}).Run(db)但是,虽然它会拾取最初满足Filter谓词的内容,但它似乎不会拾取ScheduledFor从future到现在的记录过去。即r.Now()似乎在被服务器接收时被评估,并且再也不会被评估。有什么方法可以使Now()项动态求值吗?或者我应该只进行表扫描?

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

如何使用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模型是:typeMyTimestruct{Begintime.Time`json:"begin"`Endtime.Time`json:"end"`}typeSomethingstruct{Idstrin

go - 如何停止正在监听 RethinkDB 变更源的 goroutine?

我正在尝试弄清楚如何将RethinkDB变更源与golang一起使用。我的具体问题是如何停止监听更改的goroutine数据库。例如,参见下面的函数getData()。我从处理程序运行它通过调用gogetData(c)函数。每当数据库更新时,记录是传递给channelc,然后传递给处理函数并发送给客户端使用SSE技术。我的问题是:当客户端断开连接时,我知道如何停止和退出处理函数;然而,运行getData()函数的goroutine会继续运行。什么可以我要关闭它吗?基于stackoverflow上的其他答案,我能想到的一种解决方案是发送信号关闭另一个channel上的goroutine并

go - RethinkDB 上具有 OR 条件的两个过滤器

我有一个结构:typeTalkstruct{Idstring`gorethink:"id,omitempty"`MatchIdstringUserIdXstringUserIdYstringUserNameXstringUserNameYstringCreatedAttime.Time}我当前的Talk结构如下所示:{"CreatedAt":WedSep14201621:36:26GMT+02:00,"MatchId":"172d51fa-438b-49a5-bbe5-422377f09336","UserIdX":"acc4e0b6-d33b-4755-9c0a-ae5309c2ba

go - 如何使用 RethinkDB 删除数组中的元素

我有一个包含Lobbys的表,它本质上只是派对室,它有一个Members数组和一个Messages数组,这是一个例子:{"id":"a77be9ff-e10f-41c1-8a4c-66b5a55d823c","members":["Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt","Gacnt"],"mes

javascript - RethinkDB - 更新嵌套数组

我有一个如下所示的调查表:{id:Id,date:Date,clients:[{client_id:Id,contacts:[{contact_id:Id,score:Number,feedback:String,email:String}]}]}我需要更新特定联系人下的score和feedback字段。目前,我正在运行这样的更新:functionsaveScore(obj){vardfd=q.defer();varsurvey=surveys.get(obj.survey_id);survey.pluck({clients:'contacts'}).run().then(result

mongodb - 非 ACID RethinkDB 或 MongoDB 如何维护非相等查询的二级索引

这更像是“内部运作”不解的问题:不支持*A*CID(意味着它们不能在单个事务中更新/插入然后回滚多个对象的数据)的noSQL数据库如何更新二级索引?我的理解是——为了保持二级索引同步(否则它会变得陈旧读取)——这必须发生在同一个事务中。此外,如果索引可以驻留在与数据不同的主机上,则需要存在分布式锁和/或两阶段提交才能使此类更新以原子方式工作。但是如果这些数据库不支持多对象事务(这意味着它们不会跨多个主机对数据进行两阶段提交),它们使用什么方法来保证驻留在B树结构中的二级索引分开的数据不会陈旧吗? 最佳答案 这是一个很好的问题。Ret