mirror of
https://github.com/chrislusf/seaweedfs
synced 2024-06-30 14:21:00 +02:00
filer: mongodb avoids E11000 duplicate key error collection: seaweedfs.filemeta index: directory_1_name_1 dup key
This commit is contained in:
parent
e6ba2f9c37
commit
21ad9a4ac2
|
@ -7,6 +7,7 @@ import (
|
||||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
"go.mongodb.org/mongo-driver/bson"
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
"go.mongodb.org/mongo-driver/mongo"
|
||||||
|
"go.mongodb.org/mongo-driver/mongo/options"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (store *MongodbStore) KvPut(ctx context.Context, key []byte, value []byte) (err error) {
|
func (store *MongodbStore) KvPut(ctx context.Context, key []byte, value []byte) (err error) {
|
||||||
|
@ -15,11 +16,11 @@ func (store *MongodbStore) KvPut(ctx context.Context, key []byte, value []byte)
|
||||||
|
|
||||||
c := store.connect.Database(store.database).Collection(store.collectionName)
|
c := store.connect.Database(store.database).Collection(store.collectionName)
|
||||||
|
|
||||||
_, err = c.InsertOne(ctx, Model{
|
opts := options.Update().SetUpsert(true)
|
||||||
Directory: dir,
|
filter := bson.D{{"directory", dir}, {"name", name}}
|
||||||
Name: name,
|
update := bson.D{{"$set", bson.D{{"meta", value}}}}
|
||||||
Meta: value,
|
|
||||||
})
|
_, err = c.UpdateOne(ctx, filter, update, opts)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("kv put: %v", err)
|
return fmt.Errorf("kv put: %v", err)
|
||||||
|
|
Loading…
Reference in a new issue