Mongodb: создание простой подобной системы - PullRequest
0 голосов
/ 28 июня 2018

Мне нужна помощь, чтобы это заработало. Вот что мне нужно помочь:

это работает, он создает только 1 запись (Id: 0) для "User: {username}", но я хочу снова вызвать этот метод creationCollection, поэтому, если он снова получает коллекцию, я хочу создать другую запись (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 голосов
/ 28 июня 2018

Это плохой дизайн базы данных. Вы не создаете таблицу или коллекцию для каждого пользователя. Вы создаете запись для пользователя и $inc оставляете комментарий в соответствующем поле .

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

collection.UpdateOne(filter, update);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...