代码之家  ›  专栏  ›  技术社区  ›  Tommy B.

一位SQL用户关于MongoDB的问题

  •  3
  • Tommy B.  · 技术社区  · 14 年前

    我对使用MongoDB非常感兴趣,它看起来很棒。但我来自一个完全不同的学校:关系数据库。

    所以现在我想知道MongoDB如何处理这个案子:

    比如说,我有一张满是品牌的桌子,还有一张满是产品的桌子。

    每种产品都会有一个品牌。这很容易理解,但我仍然不明白这将如何与MongoDB一起工作?

    我的意思是,我每次添加产品时都要重复这个品牌吗?我能做些关系吗?

    谢谢你的启发:)

    2 回复  |  直到 7 年前
        1
  •  2
  •   dwich    14 年前
    1. 插入品牌
    2. 插入产品(带品牌)
    3. 查询它

    准备工作:

    db.things.save({'name': 'Ford'});
    db.things.save({'name': 'Mitsubishi'});
    

    产品:

    db.things.save({'brand': 'Ford', 'name': 'Mustang'});
    db.things.save({'brand': 'Ford', 'name': 'Falcon'});
    db.things.save({'brand': 'Mitsubishi', 'name': 'Delica'});
    db.things.save({'brand': 'Mitsubishi', 'name': 'L300'});
    

    查询:

    db.things.find();
    db.things.find({'brand': 'Ford'});
    db.things.find({'brand': 'Mitsubishi'});
    

    tutorial manual 一般来说。不错的体验:)

        2
  •  3
  •   sriehl    14 年前

    一种方法是设置如下:

    {'brand':'brand one', 'products':
                           [{'product name':'a fine product','price':'$50'},
                            {'product name':'yet another fine product','price':'$20'}]
    },
    {'brand':'brand two', 'products':
                           [{'product name':'brand two product','price':'$10'}]
    }
    

    这是一种不同于关系数据库的思维方式,不应该在所有情况下都使用nosql解决方案。