我有一个包含子文档的父文档(它不是数组,只是1:1关系)。
{
_id: ObjectId(....)
prop1 : value1
prop2 : value2
subdoc : {
subProp1 : subPropValue1
subProp2 : subPropValue2
}
}
我正在尝试使用Projection仅包括subProp1和subProp2。我可以通过MongCLI进行此工作,但不能在C#(流畅的界面)中进行等效的工作。我尝试过像将投影链接在一起(排除和包含)这样的愚蠢行为。但是后者优先于前者。最终,我希望将子文档的内容映射到C#实体对象。
因此,将创建投影:Builders.Projection.Exclude(..)。Exclude().....
还尝试通过BsonDocument创建投影。
collection.Find<BsonDocument>(filter).Project("{ _id:0, prop1:0, prop2:0, subdoc : { subprop1:1, subprop2:1 }}")
任何指针将不胜感激。
谢谢。
参考方案
当包含(0
)个其他字段时,不需要排除(1
)个字段。 _id
字段是一个例外,可以在包含其他字段的同时将其排除。
另外请记住,最好将点号用于嵌套的点号,
您的C#代码如下所示:
collection.Find<BsonDocument>(filter).Project("{ _id:0, 'subdoc.subProp1':1, 'subdoc.subProp2':1 }")
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
如何使用C#仅从多层嵌入式MongoDB文档中获取具有相应父元素的确切子元素 - c#尝试使用C#从嵌入式MongoDB文档中获取确切的子文档及其对应的父文档,但查询返回所有子文档以及对应的父文档和其他文档。如何将参数设置为使用Filter和findOptions获得完全匹配。我的预期结果是频道1->第1集,并且是给定ID的Child Track。这是我的代码:// Class namespace CrudWithMultilvelNe…
MongoDB组到C#API - c#我有以下mongoDB订单集合,需要将它们分组在C#应用程序中: [ { _id: 123, status: [{ Detail: 'Started', Origin: 'France', Last: true }] }, { _id: 456, status: [{ Detail: 'Received…
使用MongoDB和C#在数组中查询深度嵌套的对象 - c#我对MongoDB相当陌生,已经面临着艰巨的挑战。我正在尝试从具有对象的数组中的对象中获取一个元素(如果有道理)。这是文档的外观以及我要获取的内容:因此,基本上结构如下:选项菜单OptionMenuSubjectOptionMenuItem为了获得我匹配的OptionMenuItem,使用MongoDB Compass工具中的聚合管道工具将其拉下[{ $un…
更改以字符串形式存储在MongoDB中文档中的枚举值 - c#我有一个类,里面有一个枚举属性。保存整个文档时,由于以下文档的.NET表示形式中的属性,该属性以字符串形式写入数据库。public enum Status { Good, Bad } public class Document { [BsonRepresentation(BsonType.String)] public Status Status { get…