C# 我需要在MongoDB C中创建一个将状态从false更改为true的方法#

C# 我需要在MongoDB C中创建一个将状态从false更改为true的方法#,c#,mongodb,backend,C#,Mongodb,Backend,我正在制作一个供内部使用的新网站,我正在制作一种方法,将我的MongoDB中的状态从False更改为True。现在它会显示“IsClosed:false”,如果请求仍然具有活动访问权限,当我的计划程序检测到它超过了估计的时间时,它必须撤销他/她的访问权限,并将状态从“false”更改为“True” 这是一个新的系统,授予和撤销对数据库和服务器的访问权,经理必须批准,然后我们有一个包含撤销和授予用户访问权的调度程序 publicstaticlist关闭请求(stringrequestid) { v

我正在制作一个供内部使用的新网站,我正在制作一种方法,将我的MongoDB中的状态从False更改为True。现在它会显示“IsClosed:false”,如果请求仍然具有活动访问权限,当我的计划程序检测到它超过了估计的时间时,它必须撤销他/她的访问权限,并将状态从“false”更改为“True”

这是一个新的系统,授予和撤销对数据库和服务器的访问权,经理必须批准,然后我们有一个包含撤销和授予用户访问权的调度程序

publicstaticlist关闭请求(stringrequestid)
{
var-filter=Builders.filter;
var idfilter=filter.Eq(x=>x._id,ObjectId.Parse(requestId));
var updater=Builders.Update;
var isClosedUpdater=updater.Set(x=>x.IsClosed,true);
var list=RequestCollection.UpdateMany(idfilter、isClosedUpdater);
退货清单;
}
这是我对如何做的猜测,但我不确定这是否正确

将状态从False更改为True


错误???:“无法将表达式类型‘MongoDB.Driver.UpdateResult’转换为返回类型‘SystemCollections.Generic.List’

我想提供一个使用包装器库的解决方案。使用它做类似的事情非常简单

using MongoDB.Entities;

namespace StackOverflow
{
    public class RequestAccess : Entity
    {
        public bool IsClosed { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            new DB("test");

            var result = CloseRequest("xxxxxxx");
        }

        public static RequestAccess CloseRequest(string requestId)
        {
            DB.Update<RequestAccess>()
              .Match(x => x.ID == requestId)
              .Set(x => x.IsClosed, true)
              .Execute();

            return DB.Find<RequestAccess>(requestId);
        }
    }
}
使用MongoDB.Entities;
命名空间堆栈溢出
{
公共类RequestAccess:实体
{
公共布尔是封闭的{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
新DB(“测试”);
var结果=关闭请求(“xxxxxxx”);
}
公共静态RequestAccess CloseRequest(字符串requestId)
{
DB.Update()
.Match(x=>x.ID==requestId)
.Set(x=>x.IsClosed,true)
.Execute();
返回DB.Find(requestId);
}
}
}

我认为代码是不言自明的。如果您需要进一步的澄清,请告诉我。祝您好运!

我想提供一个使用包装器库的解决方案。使用它来做类似的事情非常简单

using MongoDB.Entities;

namespace StackOverflow
{
    public class RequestAccess : Entity
    {
        public bool IsClosed { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            new DB("test");

            var result = CloseRequest("xxxxxxx");
        }

        public static RequestAccess CloseRequest(string requestId)
        {
            DB.Update<RequestAccess>()
              .Match(x => x.ID == requestId)
              .Set(x => x.IsClosed, true)
              .Execute();

            return DB.Find<RequestAccess>(requestId);
        }
    }
}
使用MongoDB.Entities;
命名空间堆栈溢出
{
公共类RequestAccess:实体
{
公共布尔是封闭的{get;set;}
}
班级计划
{
静态void Main(字符串[]参数)
{
新DB(“测试”);
var结果=关闭请求(“xxxxxxx”);
}
公共静态RequestAccess CloseRequest(字符串requestId)
{
DB.Update()
.Match(x=>x.ID==requestId)
.Set(x=>x.IsClosed,true)
.Execute();
返回DB.Find(requestId);
}
}
}

我认为代码是不言自明的。如果您需要进一步的澄清,请告诉我。祝您好运!

非常感谢。我找到了我无法运行代码的原因。我发现了这一点——成功了,我找到了它为什么“刹车”,因为我在“IsClosed”上搜索。我必须在“\u id”上搜索“我试过了,它成功了。。不过还是非常感谢你的回答:)非常感谢。我发现了为什么我无法运行我的代码。我发现这个——有效,我发现它为什么“刹车”,因为我在搜索“IsClosed”。。我必须在“_id”上搜索,我试过了,结果成功了。。不过还是非常感谢你的回答:)