상세 컨텐츠

본문 제목

[Unity] Mongo DB <---> Unity 데이터 연동

유니티

by simstealer 2022. 10. 1. 12:21

본문

using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;

public class DatabaseAccess : MonoBehaviour
{
    // ###############################################
    //             NAME : Simstealer                      
    //             MAIL : minsub4400@gmail.com         
    // ###############################################

    MongoClient client = new MongoClient("몽고DB string 넣으면 됩니다.");
    IMongoDatabase database;
    IMongoCollection<BsonDocument> collection;

    void Start()
    {
    	// 데이터 베이스 명
        database = client.GetDatabase("TestDataBase");
        // 콜렉션 명
        collection = database.GetCollection<BsonDocument>("TestCollection");

        // 테스트 하고 지워줘야합니다.
        GetScoresFromDataBase();
    }

    public async void SaveScoreToDateBase(string userName, int score)
    {
        var document = new BsonDocument { { userName, score } };
        await collection.InsertOneAsync(document);
    }

    public async Task<List<HighScore>> GetScoresFromDataBase()
    {
        var allScoreTask = collection.FindAsync(new BsonDocument());
        var scoreAwaited = await allScoreTask;

        List<HighScore> highScores = new List<HighScore>();
        foreach (var score in scoreAwaited.ToString())
        {
            highScores.Add(Deserialize(score.ToString()));
        }

        return highScores;
    }

    private HighScore Deserialize(string rawJson)
    {
        var highScore = new HighScore();

        // userName이 200인 데이터를 찾는다.
        var filter = Builders<BsonDocument>.Filter.Eq("userName", 200);

        // .TiList()는 해당 조건의 전체 데이터를 찾고
        //var result1 = collection.Find(filter).ToList();
        // .FirstOrDefault()는 해당 조건의 첫번째 하나의 데이터를 찾는다
        var result2 = collection.Find(filter).FirstOrDefault();

        // userName을 Key로 Value를 찾아서 출력
        //string Roomname = result1[0].GetElement("userName").Value.ToString();
        //Debug.Log(Roomname);

        return highScore;
    }
}

public class HighScore
{
    public string UserName { get; set; }
    public int Score { get; set; }
    public int Age { get; set; }
}

MongoDBDlls.zip
0.76MB

'유니티' 카테고리의 다른 글

[Unity] API Call (GET)  (0) 2022.10.04
[Unity] 싱글톤  (0) 2022.10.02
[Unity] Resources.Load  (0) 2022.09.29
[C#] Action, Func  (0) 2022.09.29
[Unity] 유니티 - JSON 데이터 저장, 불러오기  (0) 2022.09.29

관련글 더보기

댓글 영역