我是MongoDb的新手,但我知道在文档数据库中谈论关系是闻到的.无论如何,我只是想了解它是否符合我的需求以及它的极限.
我在我的域名中只是一个简单的c#实体:
class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public ICollection<Person> Friends { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我只是希望序列化过程使该集合成为一种列表
["...api/persons/1", "...api/persons/2", ...]
Run Code Online (Sandbox Code Playgroud)
有可能吗?
为什么大多数 NoSQL 存储解决方案没有某种用于超高效连接的“指针”,如关系前 DBMS 所具有的客观原因是什么?
我的意思是,我部分理解了为什么经典 RDBMS 放弃指针的理论原因(需要更新它们并对内存和磁盘进行双重同步,没有足够快的“磁盘”可以像某些用例的随机访问一样处理,例如现代SSD 可以等)。
但是在众多 NoSQL 解决方案中,为什么只有很少一部分人意识到这个模型对于许多实际案例来说非常棒(我知道 OrientDB 和 Neo4j 除外),而不仅仅是那些需要图遍历的案例。我的意思是,当您需要诸如多连接之类的事情时,您需要 ping pong Mongo 并执行 N 个查询而不是一个。
NoSQL 文档数据库的用例是否与图形数据库之一重叠得足够多,这样的功能是否有意义,并且只会在没有太多额外成本的情况下向 NoSQL 解决方案提供 SQL 连接的所有实用功能,并且对于大多数查询会使索引无用,并且占用大量数据集的空间要少得多?
(...作为奖励,任何 NoSQL 解决方案都可以用作图形数据库,并且对存储在 Mongo 中的图形进行约 100 个节点的路径长度遍历会自动足够快地工作)