Mongodb:创建一个简单的类似系统

时间:2018-06-28 08:06:06

标签: c# .net mongodb

我需要帮助才能正常工作。 以下是我需要帮助的地方:

这有效,它仅为“用户:{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; }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这是一个错误的数据库设计。您不会为每个用户创建表或集合。您为每个用户和$increment the relevant field创建一个记录

var filter = Builders<BsonDocument>.Filter.Eq("Username", username);
var update = Builders<BsonDocument>.Update.Inc("Likes", 1);

collection.UpdateOne(filter, update);