首页 > 解决方案 > 如何在dotnet core中获取BsonElement值以获取mongodb字段名称的字符串

问题描述

大家好,我还是 mongo 的新手,但我希望能从您的丰富经验中获得帮助,在我的项目中,我使用 BsonElement 来命名所有字段,例如:

        [BsonElement("isremoved")]
        public bool IsRemoved { get; set; }

我在方法中有查询:

        public async Task<Player> Delete(string PlayerId)
        {
            var filter = Builders<Player>.Filter.And(Builders<Player>.Filter.Eq(x => x.PlayerId, PlayerId));
            var item = Builders<Player>.Update.Combine(Builders<Player>.Update.Set("isremoved", true));
            return await _dbCollection.FindOneAndUpdateAsync(filter, item);
        }

我认为这不是构建此查询的最佳方法,我们实际上打算将生产中的字段名称更改为短名称为“isr”以替换“isremoved”,在这种情况下如何从类属性本身获取 BsonElement 元素值(已移除)

标签: c#mongodb.net-corenosqldrive

解决方案


您可以像这样检索自定义属性值:

typeof(Player).GetProperty(nameof(Player.IsRemoved)).GetCustomAttribute<BsonElementAttribute>().ElementName

不要忘记导入using MongoDB.Bson.Serialization.Attributes;using System.Reflection;.


推荐阅读