From 2f97933f6ca841f416aeceff188f6116e8e94fb1 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Fri, 24 May 2024 18:11:48 +0800 Subject: [PATCH] new mongo --- pkg/common/db/dataver/common.go | 14 ++++++------ pkg/common/db/dataver/todo.go | 38 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 pkg/common/db/dataver/todo.go diff --git a/pkg/common/db/dataver/common.go b/pkg/common/db/dataver/common.go index d5a0c1694..bc367d795 100644 --- a/pkg/common/db/dataver/common.go +++ b/pkg/common/db/dataver/common.go @@ -6,6 +6,7 @@ import ( "github.com/openimsdk/tools/errs" "github.com/openimsdk/tools/utils/datautil" "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "time" ) @@ -16,12 +17,13 @@ const ( ) type WriteLog struct { - DID string `bson:"d_id"` - Logs []Elem `bson:"logs"` - Version uint `bson:"version"` - Deleted uint `bson:"deleted"` - LastUpdate time.Time `bson:"last_update"` - LogLen int `bson:"log_len"` + ID primitive.ObjectID `bson:"_id"` + DID string `bson:"d_id"` + Logs []Elem `bson:"logs"` + Version uint `bson:"version"` + Deleted uint `bson:"deleted"` + LastUpdate time.Time `bson:"last_update"` + LogLen int `bson:"log_len"` } func (w *WriteLog) Full() bool { diff --git a/pkg/common/db/dataver/todo.go b/pkg/common/db/dataver/todo.go new file mode 100644 index 000000000..69b979fe5 --- /dev/null +++ b/pkg/common/db/dataver/todo.go @@ -0,0 +1,38 @@ +package dataver + +/* + +UserIDs 顺序 +前500顺序 + + +1,2,3,4,5,6,7,8,9 + +1,3,5,7,8,9 + + +1.sdk添加一个表记录 docID(后续换名字), version +2.sdk同步,先计算idHash,api调用参数idHash, docID, version +3.服务器先判断version变更记录,没有直接返回同步成功。 + 有变更,先查版本变更记录,在查前500id,变更记录只保留前500id中的 + 根据前500id计算idHash,不一致返回会全量id,不反悔删除id + 全量同步有标识,只返回全量id + 变更记录只包含id,不包括详细信息。 +4.sdk通过变更记录,同步数据不一致进行重试。 + + + + + + + + + + + + + + + + +*/