需要帮助通过C#驱动程序访问mongo中的嵌套对象吗

需要帮助通过C#驱动程序访问mongo中的嵌套对象吗,c#,mongodb,nested,C#,Mongodb,Nested,我试图从数组中删除一个对象,但我假设这与访问嵌套对象进行更新的过程相同 假设我的数据是这样的 results myColl01 = {_id:1 a:100 b:[{aa:500, bb:1000}, {aa:700, bb:2000}]

我试图从数组中删除一个对象,但我假设这与访问嵌套对象进行更新的过程相同

假设我的数据是这样的

results myColl01 = {_id:1
                    a:100
                    b:[{aa:500,
                        bb:1000},
                       {aa:700,
                        bb:2000}]
                   }
我想从b中删除一个文档,其中b.aa==500

下面是我使用的C代码的样子:

int mc01_id = 1;
int mc01B_AA_val = 500;
IMongoQuery query = Query<MyColl01>.EQ(mc01=> mc01.Id, id);
IMongoUpdate update = Update<MyColl01>.Pull(mc01 => mc01.b,
                              Query<MyColl01_B>.EQ(mc01b => mc01b.aa, mc01B_AA_val));
intmc01\u id=1;
int mc01B_AA_val=500;
IMongoQuery=query.EQ(mc01=>mc01.Id,Id);
IMongoUpdate=update.Pull(mc01=>mc01.b,
EQ(mc01b=>mc01b.aa,mc01b_aa_val));
WriteConcernResult updateResult=
this.MongoConnectionHandler.MongoCollection.Update(查询,更新)

我知道这可以通过去掉字符串来实现,但我希望避免在查询中使用文本

返回的错误如下所示:

Argument 2: cannot convert from
'MongoDB.Driver.IMongoQuery' to
'System.Func<MongoDB.Driver.Builders.QueryBuilder<MyProject.MyColl01_B>,
       MongoDB.Driver.IMongoQuery>'
参数2:无法从转换
“MongoDB.Driver.imongquery”到
'System.Func'

所以我在别处偶然找到了答案。 要访问要从中提取的子类/文档,需要使用生成器

IMongoUpdate update = Update<MyColl01>.Pull(mc01 => mc01.b,
                          builder => builder.EQ(b => b.aa, mc01B_AA_val));
imongupdate=update.Pull(mc01=>mc01.b,
builder=>builder.EQ(b=>b.aa,mc01B_aa_val));