Heim  >  Fragen und Antworten  >  Hauptteil

mongodb - mongo中用嵌套结构优势是什么

{
    author{
        id,
        name,
    }
}

{
    author_id,
    author_name,
}

有何优势

世界只因有你世界只因有你2747 Tage vor795

Antworte allen(2)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-02 09:28:28

    首先需要知道,MongoDB是NoSQL中的一种,是不直接支持Join的,这是NoSQL的一个特点,不需要直接支持Join,可以将横向扩展以及性能做到更好。

    但是这不等于说MongoDB不能做Join所做的事情,为了达到传统数据库join的功能,MongoDB中有2个思路:

    1. Embedding:透过Embedding子文档,达到One to Many的关联关系;这就是您说的嵌套结构;

    2. Referencing:Referencing分为手工Referencing和自动Referencing;通常推荐是手工Referencing,通常是将需要关联的文档的Object_id保存在需要关联的Collection中,也就是说需要关联的Document的Object_id写入时,分别写入在两个需要关联的Collection里面。

    上述两个思路,也正是MongoDB的Data Model的主要思路。

    那么上述2个思路在具体的运用的时候,怎么区分开呢?

    1. 如果能够Embedding的Sub Document,不需要单独被查询,那就直接Embedding;

    2. 如果这个Sub Document需要对外提供查询,则单独保存为一个Collection,并使用Referencing与其他collecion关联。

    供参考。

    Love MongoDB! Have Fun!


    不见不散,19日,请戳:>---<

    MongoDB在线讲座系列19- MongoDB 10步构建单一视图

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-02 09:28:28

    文档型结构,更加贴近我们对物体属性的描述;通过一条记录就可以描述出一个对象的所有属性,这就是一个优势!

    Antwort
    0
  • StornierenAntwort