2013-09-08 5 views
2

Недавно я начал изучать Go и действительно нравится это до сих пор. Я хотел бы узнать, как создать REST API с драйвером Mongo mgo.mgo API - разница между mgo, mgo/bson, mgo/txn

На сайте находятся три API: mgo, mgo/bson, mgo/txn. Что они имеют в виду?

ответ

4

Даршан прав: есть хорошие ссылки для этих деталей на project website. В частности, вы можете найти ссылки на пакет API, из mgo, mgo/bson и mgo/txn

Просто обеспечивает краткий обзор каждого из пакетов, так как это, кажется, отсутствует на веб-странице (я должен исправить):

labix.org/v2/mgo

Это сам драйвер MongoDB. Если вы хотите поговорить с базой данных MongoDB, это пакет для начала. Посмотрите на функцию mgo.Dial и пример в project website.

labix.org/v2/mgo/bson

Этот пакет реализует маршалинга и демаршалинга из BSON документов, после BSON specification. Он не зависит от любого из двух других пакетов и может использоваться сам по себе, когда вы хотите просто сериализовать/десериализовать документы в этом формате по любой причине.

Пакет mgo использует его для реализации все маршалинга и демаршалинга функциональности, поэтому детали вы найдете в документации mgo/bson пакета в терминах поля тегов и т.д., все действительна при работе с mgo пакетом, а также.

labix.org/v2/mgo/txn

Этот пакет реализует ГГО конкретных multi-document transaction support for MongoDB. Он реализует свои функции поверх пакета mgo, и ни один из двух других пакетов не зависит от него. Если вы только начинаете использовать MongoDB, вам, скорее всего, не нужен этот пакет.

+0

Это многое прояснило. Благодаря! – tldr

1

Это не три отдельных API; это один API, который является модульным. mgo - основной пакет. mgo/bson - это реализация BSON. mgo/txn поддерживает операции с несколькими документами.

Вы должны начать с использования mgo и добавить любой из подпакетов, если вам нужны функции, которые они предоставляют. Вот пример кода на mgo homepage, который демонстрирует использование.

+0

Не могли бы вы пояснить подробнее? Что вы подразумеваете под реализацией BSON и транзакциями с несколькими документами? – tldr

+0

@tldr Существует отличная документация по всем трем пакетам, связанным с домашней страницей mgo. –