基于c#驱动的mongodb条件投影
我想有条件地从投影中排除一个字段。下面是我的文件,如果课堂类型是英语,我想取消教授的投影 我的文件:基于c#驱动的mongodb条件投影,c#,mongodb,aggregation-framework,projection,C#,Mongodb,Aggregation Framework,Projection,我想有条件地从投影中排除一个字段。下面是我的文件,如果课堂类型是英语,我想取消教授的投影 我的文件: { "Name": "HumanName", "Occupation": "Student", "Class": [ { "ClassType": "Math", "Professors": [
{
"Name": "HumanName",
"Occupation": "Student",
"Class": [
{
"ClassType": "Math",
"Professors": [
{
"Name": "Jimmy"
},
{
"Name": "Smith"
}
]
},
{
"ClassType": "English",
"Professors": [
{
"Name": "John"
}
]
}
]
}
说明结果:
{
"Name": "HumanName",
"Occupation": "Student",
"Class": [
{
"ClassType": "Math",
"Professors": [
{
"Name": "Jimmy"
},
{
"Name": "Smith"
}
]
},
{
"ClassType": "English",
"Professors": []
}
]
}
我们可以用C#驱动程序实现这一点吗?如果我们可以,请分享一个例子。我将这样做。为了删除组id“工件”,您必须投影组输出,而不包括id
db.getCollection('MyClass').aggregate( [
{$unwind: '$Class'},
{ $project : { Name : 1 ,
Occupation : 1,
Class : {
ClassType:1,
Professors:{
$cond: {
if: { $eq: ["$Class.ClassType", "English"] },
then: [],
else: "$Class.Professors"
}
}
}
}
},
{$group: {
_id: '$_id',
Name: {$first: '$Name'},
Occupation: {$first: '$Occupation'},
Class: {$push: '$Class'}
}},
])到目前为止你试过什么?向我们展示您的代码,并尝试解释您遇到的问题,以便我们能够帮助您。我刚刚意识到您正在寻找C#驱动程序解决方案。很抱歉