除了我之前的问题:mongodb c# select specific field .
我正在编写一个选择特定字段的通用方法 .
要求是:
-
字段可以是任何类型
-
返回类型为T.
-
字段可以在子字段内
-
字段可以在数组项内部 - 在这种情况下,可以选择数组中所有项的特定字段
对于短裤,我正在寻找"select" /点符号功能 . for example:
想要的方法:
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"]
据我所知,使用 projection expression 与lambda对数组中的项目没有好处,我当时想的更多 dot notation 方式 .
注意:我正在使用新的c#驱动程序 (2.0)
非常感谢 .
1 回答
我没有看到在字符串中使用don表示法的好方法,因为它比集合方法有更多的集合问题:
例如
Persion.Friends.Name
这个链中的哪个元素是数组?
您应该对集合元素应用显式转换(错误的可能位置)
通用方法在支持和使用方面更可靠: