gpt4 book ai didi

c# - MongoDB Fluent界面。尝试投影子文档属性,而忽略父文档属性

转载 作者:行者123 更新时间:2023-12-03 15:59:08 24 4
gpt4 key购买 nike

我有一个包含子文档的父文档(它不是数组,只是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 }")

关于c# - MongoDB Fluent界面。尝试投影子文档属性,而忽略父文档属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61588221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com