You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB查询中返回Account.Credentials.Username并排除密码

解决方案

方法一:查询时用投影控制字段返回

通过MongoDB的投影功能,在查询时明确排除Account.Credentials.Password字段,只保留需要的Username,同时保留Player的其他所有字段。

修改后的服务代码:

public List<Player> GetUsers()
{
    // 构建投影规则:排除Password字段
    var projection = Builders<Player>.Projection
        .Exclude(p => p.Account.Credentials.Password);

    // 执行查询并应用投影
    return _players.FindSync(FilterDefinition<Player>.Empty)
        .Project<Player>(projection)
        .ToList();
}

方法二:修改实体类全局忽略Password

如果所有涉及Credentials的查询都不需要返回Password,可以直接在实体类的Password属性上添加特性,让MongoDB序列化时自动忽略该字段:

修改后的Credentials实体类:

public class Credentials
{
    public string Username { get; set; } = "";
    
    [BsonIgnore]
    public string Password { get; set; } = "";
}

这种方式下原查询方法无需修改,返回的Player对象会自动剔除Password字段。

内容的提问来源于stack exchange,提问作者fivetwentysix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:15:58