optimize db writes, should improve performance in high player server

This commit is contained in:
rafi1212122
2023-06-14 23:29:36 +07:00
parent e414af2d84
commit 67de5290b8
3 changed files with 36 additions and 11 deletions

View File

@@ -33,6 +33,18 @@ namespace Common.Database
InitData(uid);
return collection.AsQueryable().Where(x => x.OwnerUid == uid && ShowMapList.Contains(x.MapId)).ToList(); ;
}
public static void SaveBulk(IEnumerable<OpenWorldScheme> openWorlds)
{
List<WriteModel<OpenWorldScheme>> ops = new();
foreach (OpenWorldScheme ow in openWorlds)
{
ops.Add(ow.SaveOp());
}
collection.BulkWrite(ops);
}
}
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
@@ -50,5 +62,10 @@ namespace Common.Database
{
OpenWorld.collection.ReplaceOne(Builders<OpenWorldScheme>.Filter.Eq(x => x.Id, Id), this);
}
public WriteModel<OpenWorldScheme> SaveOp()
{
return new ReplaceOneModel<OpenWorldScheme>(Builders<OpenWorldScheme>.Filter.Eq(x => x.Id, Id), this);
}
}
}