首页 > 解决方案 > 有没有办法让 MongoDB c# 中的限制值交互?

问题描述

我想知道是否有办法在应用程序运行时使 Limit() 变量可变?这是我的代码:

    void Start()
    {
        m_ButtonRun.onClick.AddListener(TaskOnClick);
    }
    public void TaskOnClick() //
    {
        string connectionString = "myconnection";

        var client = new MongoClient(connectionString);
        var database = client.GetDatabase("mydb");
        //var database = server.GetDatabase("WIVEmydbData");
        var collection = database.GetCollection<BsonDocument>("mycollection");
        var sort = Builders<BsonDocument>.Sort.Descending("Time");

        var document = collection.Find(new BsonDocument()).Sort(sort).Limit(limit: 1).ForEachAsync(d => Console.WriteLine(d));
        Console.WriteLine(document.ToString());

        //streamwriter writes the Console.WriteLine to multi-import.txt
        FileStream filestream = new FileStream("import.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
        var writeFile = new StreamWriter(filestream);
        {
            writeFile.AutoFlush = true;
            Console.SetOut(writeFile);
            writeFile.Write(document.ToString());
        }
}

例如,是否可以分配一个公共按钮以将限制增加 1?我的想法是有 3 个按钮:“增加限制”、“执行数据库搜索”、“减少限制”。执行部分工作得很好,只是想知道是否有可能即时定制 Limit() 。

编辑:添加了完整的代码......哦,男孩我想的是在Limit()的()中放一个X之类的东西,将X设置为默认值1,然后有两个按钮来添加或减去1 从 X 值。

标签: c#mongodbunity3dbson

解决方案


正如评论中所述,我很确定你可以简单地做类似的事情

[SerializeField] Button increaseButton;
[SerializeField] Button decreaseButton;

private void Start()
{
    m_ButtonRun.onClick.AddListener(TaskOnClick);
    increaseButton.onClick.AddListener(IncreaseLimit);
    decreaseButton.onClick.AddListener(DecreaseLimit);
}

private int limit = 1;

public void IncreaseLimit()
{
    limit++;
}

public void DecreaseLimit()
{
    limit--;

    limit = Mathf.Max(limit, 1);
}

public void TaskOnClick() //
{
    string connectionString = "myconnection";

    var client = new MongoClient(connectionString);
    var database = client.GetDatabase("mydb");
    //var database = server.GetDatabase("WIVEmydbData");
    var collection = database.GetCollection<BsonDocument>("mycollection");
    var sort = Builders<BsonDocument>.Sort.Descending("Time");

    var document = collection.Find(new BsonDocument()).Sort(sort).Limit(limit).ForEachAsync(d => Console.WriteLine(d));
    Console.WriteLine(document.ToString());

    //streamwriter writes the Console.WriteLine to multi-import.txt
    FileStream filestream = new FileStream("import.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
    var writeFile = new StreamWriter(filestream);
    {
        writeFile.AutoFlush = true;
        Console.SetOut(writeFile);
        writeFile.Write(document.ToString());
    }
}

推荐阅读