我有一个像这样设置的MongoDB -
product-data
1234-abcd
items
9012-uiop
name
price
5678-efgh
我知道我想要的产品的完整路径 -
product-data.1234-abcd.items.9012-uiop
我希望在不解析整个对象的情况下检索此嵌套对象,而不使用find。我尝试了一些事情 -
_database.GetCollection<ProductData>("product-data").Find("1234-abcd.items.9012-uiop"); // Thinks the result of Find is ProductData
_database.GetCollection<ProductItem>("product-data.1234-abcd.items.9012-uiop"); // Thinks the result is a collection (naturally)
我想过将第二个对象序列化为json,然后将其反序列化为我期望的类,但这看起来像是一个黑客。
给定完整路径,如何使用.Net Mongo驱动程序以这种方式解析嵌套对象?
答案 0 :(得分:0)
我无法理解,你的数据结构是什么,我假设你有ProductData
字符串Id和ProductItem
insisde列表。
如果要从集合中获取数据,则应调用Find()
。但是如果您只想从中获取某个项目,则可以将查询结果投影到仅获得它:
ProductItem item = _database.GetCollection<ProductData>("product-data")
.Find(x=>x.Id=="1234-abcd")
.Project(x=>x.items.First(i=>i.name=="9012-uiop"))
.First();