Таблица SQL в nosql (MongoDB) - простой пример - PullRequest
7 голосов
/ 14 ноября 2011

У меня есть некоторые проблемы, чтобы понять nosql.Я использую mongodb и java и хотел бы создать что-то вроде этого: таблицу (лиц) со столбцом для имени (в виде строки), возраста (в виде целого числа), в браке (логическое значение).В обычном sql это было бы легко ... но как работать с mongodb и java?

Хорошо, я знаю: таблица в mongodb - это коллекция, а столбец - это поле BSON.Я бы начал так:

        Mongo m = new Mongo();
        DB db = m.getDB("myDatabase");
        DBCollection col = db.getCollection("Persons");
        BasicDBObject doc = new BasicDBObject();
        doc.put("something?", "something?");
        col.insert(doc);

Первые 3 шага легко.У меня есть моя коллекция (таблица), я должен сделать поля (столбцы) BSON имя, возраст, женат.Но как?Я знаю метод put (), но что я должен добавить?И если у меня есть конструкция, я бы хотел добавить несколько «персон».

Есть идеи?Спасибо

Ответы [ 2 ]

5 голосов
/ 14 ноября 2011

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

Я рекомендую пройти официальный учебный курс по MongoDB для Java ЗДЕСЬ .

Вы должны быть в состоянии сделать что-то вроде этого:

doc.put("name", "John");
doc.put("age", 30);
doc.put("married", false);
3 голосов
/ 14 ноября 2011

Взгляните на документацию здесь: http://api.mongodb.org/java/2.0/org/bson/BasicBSONObject.html#put(java.lang.String, java.lang.Object)

Мне кажется, что put принимает ключ и значение для одного из ваших полей, например:

doc.put("name", myPersonInstance.getName());
doc.put("age", myPersonInstance.getAge());

Вы можете вставить столько атрибутов, используя put, сколько хотите. Также есть методы для добавления с карты и тому подобное.

Пожалуйста, имейте в виду, что я никогда не использовал Java API MongoDB, поэтому я основываю свои заявления исключительно на этой документации и на некотором небольшом знании MongoDB в целом.

Для записи, эти "путы" будут эквивалентны структуре JSON, такой как:

{name: "John", age:35}

Надеюсь, это поможет.

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