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

I need to make a method which changes the status from false to true in my MongoDB C#

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

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

 public static List<RequestAccess> CloseRequests(string requestId)
        {
            var filter = Builders<RequestAccess>.Filter;
            var idfilter = filter.Eq(x => x._id, ObjectId.Parse(requestId));
            var updater = Builders<RequestAccess>.Update;
            var isClosedUpdater = updater.Set(x => x.IsClosed, true);

            var list = RequestCollection.UpdateMany(idfilter, isClosedUpdater);

            return list;
        }

这是我对如何做到这一点的猜测,但我不确定它是否正确或有任何问题

将状态从 False 更改为 True

错误??:“无法将表达式类型 'MongoDB.Driver.UpdateResult' 转换为 return 类型 'SystemCollections.Generic.List'

我想提供一个使用 MongoDB.Entities 包装器库的解决方案。使用它做这样的事情非常简单。

using MongoDB.Entities;

namespace Whosebug
{
    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);
        }
    }
}

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