如何针对动态类型文档以编程方式创建别名投影?
动态别名投影的实现方案
针对运行时确定别名(含特殊字符)的场景,你可以用以下两种方式实现MongoDB的别名投影:
方法一:使用Projection.Add()
直接通过Add方法指定原字段和目标别名,支持任意格式的别名:
// 运行时动态获取的别名,可包含.等特殊字符 string dynamicAlias = "user.profile.name"; var projection = Builders<BsonDocument>.Projection.Add("name", dynamicAlias);
方法二:手动构建BsonDocument投影
完全对应MongoDB原生的$project语法,适合复杂投影场景:
string dynamicAlias = "user.profile.name"; var projectionDocument = new BsonDocument { { dynamicAlias, "$name" } }; var projection = projectionDocument.ToProjectionDefinition<BsonDocument>();
说明
Include方法仅能保留原字段名,无法实现重命名;而上述两种方式通过直接定义键值映射,完美支持动态别名(含特殊字符)的需求,和你给出的MongoDB原生$project语句效果一致。
内容的提问来源于stack exchange,提问作者hillin
相关产品推荐
相关产品推荐

