mongodb c选择特定的字段点表示法
本文关键字:字段 表示 选择 mongodb | 更新日期: 2023-09-27 18:00:35
除了我之前的问题:mongodb c#选择特定字段。
我正在编写一个用于选择特定字段的通用方法。
要求是:
- 字段可以是任何类型
- 返回类型为T
- 字段可以位于子字段内
- 字段可以在数组项内-在这种情况下,可以选择数组中所有项的特定字段
简而言之,我正在寻找"选择"/点号功能。例如:
想要的方法:
T GetFieldValue<T>(string id, string fieldName)
文件:
persons
{
"id": "avi"
"Freinds" : [
{
"Name" : "joni",
"age" : "33"
},
{
"Name" : "daniel",
"age" : "27"
}]
}
目标是这样调用方法:
string[] myFriends = GetFieldValue<string[]>("avi", "Freinds.Name");
myFriends == ["joni","daniel"]
据我所知,将投影表达式与lambda一起使用对数组中的项没有好处,我在想更多的点符号方式。
注意:我正在使用新的c#驱动程序(2.0)
非常感谢。
我看不出在字符串中使用don表示法的好方法,因为它在集合方面比一般方法有更多的问题:
例如Persion.Friends.Name
- 哪个元素是这个链中的数组
- 您应该对集合元素应用显式转换(可能的错误位置)
通用方法在支持和使用方面更可靠:
var friends = await GetFieldValue<Person, Friend[]>("avi", x => x.Friends);
var names = friends.Select(x=>x.Name).ToArray();