我需要帮助才能正常工作。 以下是我需要帮助的地方:
这有效,它仅为“用户:{username}”创建1个条目(ID:0),但是我想再次调用此方法creationCollection,所以如果它再次从以前获取集合,我想创建另一个条目(ID:Id) :1),依此类推。因此,每次我再次调用该方法时,我希望它每次都加1。
using System.Threading.Tasks;
using MongoDB.Driver;
namespace YoneSql
{
public class VotingDatabase
{
public async Task createCollection(string username)
{
var client = new MongoClient("mongodb://127.0.0.1:27017/");
var database = client.GetDatabase("_YoneLikes");
var collection = database.GetCollection<likeSettings>($"User: {username}");
await collection.Indexes.CreateOneAsync(Builders<likeSettings>.IndexKeys.Ascending(_ => _.Id));
var settings = new likeSettings
{
Username = $"{username}"
};
}
public class likeSettings
{
public int Id { get; set; }
public string Username { get; set; }
}
}
}
答案 0 :(得分:0)
这是一个错误的数据库设计。您不会为每个用户创建表或集合。您为每个用户和$inc
rement the relevant field创建一个记录。
var filter = Builders<BsonDocument>.Filter.Eq("Username", username);
var update = Builders<BsonDocument>.Update.Inc("Likes", 1);
collection.UpdateOne(filter, update);