mgo API - разница между mgo, mgo/bson, mgo/txn

Я недавно начал изучать Go, и пока он мне очень нравится. Я хотел бы узнать, как создать REST API с драйвером mgo Mongo.

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


person tldr    schedule 08.09.2013    source источник


Ответы (2)


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

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

labix.org/v2/mgo

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

labix.org/v2/mgo/bson

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

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

labix.org/v2/mgo/txn

Этот пакет реализует специфичную для mgo поддержку многодокументных транзакций для МонгоБД. Он реализует свою функциональность поверх пакета mgo, и ни один из двух других пакетов не зависит от него. Если вы только начинаете использовать MongoDB, скорее всего, вам не нужен этот пакет.

person Gustavo Niemeyer    schedule 08.09.2013
comment
Это многое прояснило. Спасибо! - person tldr; 26.09.2013

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

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

person Darshan Rivka Whittle    schedule 08.09.2013
comment
Не могли бы вы объяснить немного подробнее? Что вы подразумеваете под реализацией BSON и многодокументными транзакциями? - person tldr; 08.09.2013
comment
@tldr На главной странице mgo есть отличная документация по всем трем пакетам. - person Darshan Rivka Whittle; 08.09.2013