我有一个包含文档集合的集合。每个文档都有大约20种不同的属性,具有不同的数据类型(例如Int,Double,String)。
我正在寻找一种有效的方式或适当的方法来为每个房产添加旁注。
我的想法(我使用C#来建模文档结构)是针对每个属性而不是 :
public int PageRank {get; set; }
使用:
public Dictionary<int, string> PageRank {get; set;}
这意味着文档中的每个项目都是旁注的值和字符串的集合。
用户会在前端看到旁注。
有没有更好的实施?
答案 0 :(得分:1)
Idan,出于性能原因,您应该从MongoDB的角度考虑您的用例 - 而不是从面向对象语言的角度来看。它最终看待C#的方式是事后的想法 - 它的数据库性能非常重要。因此,在查询文档时,如果通常不需要附注,最好将它们放入单独的集合中(可能),从而减小每个文档的大小,并使MongoDB能够将更多内容读入可用内存。如果用户确实需要查看旁注,则可以使用单独的查询来执行此操作。您更了解您的使用场景,因此您需要决定如何执行此操作,但是您需要关注的这些类型的设计决策 - 以及C#代码将根据您的架构进行整形