Вопрос о MongoDB от пользователя SQL - PullRequest
3 голосов
/ 13 июля 2010

Я очень заинтересован в использовании MongoDB, это кажется потрясающим.Но я из совершенно другой школы: реляционных баз данных.

Так что теперь мне интересно, как этот случай работает с MongoDB:

Скажем, у меня есть таблица, заполненная брендами, и язаполнить еще одну таблицу.

Каждый товар будет иметь свой бренд.Это очень просто понять, но я до сих пор не понимаю, как это будет работать с MongoDB?

Я имею в виду, придется ли мне повторять марку каждый раз, когда я добавляю товар?Могу ли я наладить какие-то отношения?

Спасибо, что просветили меня:)

Ответы [ 2 ]

3 голосов
/ 14 июля 2010

Один из способов был бы настроить его следующим образом:

{'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'}]
}

В этом случае у вас есть только один «стол» со всей необходимой вам информацией о продуктах (включая торговую марку).Я только что поэкспериментировал с mongodb, поэтому не уверен, как это будет масштабироваться.

Это другой способ мышления, чем в реляционной БД, и решение nosql не должно использоваться во всех случаях.

2 голосов
/ 14 июля 2010
  1. Вставка марки
  2. Вставка вставки товара (с маркой)
  3. Запрос

Подготовка:

  • Загрузитьhttp://www.mongodb.org/downloads
  • В Windows создайте каталог c:\data\db\ (каталог по умолчанию, сейчас его не волнует)
  • Запустите mongod (он запустит сервер)
  • Запустите Mongo (он запустит клиент и будет использовать тестовую базу данных по умолчанию)

Бренды:

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'});

// Я только что узнал об этом (включая загрузку и т. Д.) Почти до того, как был опубликован первый ответ из учебника и руководства в целом.Хороший опыт:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...