Как подключить MongoDB со Scala и извлечь данные из него [дублировать]

Мы столкнулись с той же проблемой. В основном это проблема с товарными знаками. Я не спорю, правильно это или нет. Но решение:

  1. Либо вы должны указать в учетной записи разработчика своего клиента.
  2. Или юридически приобрести товарный знак и фирменное наименование вашего клиента (может быть ограничено для целей AppStore / PlayStore / Digital Marketing)

Я знаю, что точка 2 звучит как откусил. Я согласен.

Давайте возьмем пример:

Разработчик : FooBar Software Приложение : No1 Pharma

В AppStore листинг, продавец приложения является разработчиком. Итак, с точки зрения пользователя, если вы посмотрите на листинг в AppStore, скажем, приложение «No1 Pharma» продается «FooBar Software». Это звучит не так.

Другой случай:

Права на публикацию книг Гарри Поттера (согласно вики) принадлежат Bloomsbury Publishing (UK) и Scholastic (US)

Разработчик : Bloomsbury Publishing App : Harry Potter

Это будет звучать правильно, несмотря на то, что имя продавца и имя приложения не совпадают. В листинге будет указано, что «Bloomsbury Publishing» является продавцом приложения «Гарри Поттер». Это звучит правильно. Поэтому Bloomsbury может публиковать все товарные знаки / бренды, которыми он владеет, в качестве разных приложений в своей учетной записи разработчика.

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

Предположим, что IBM разрабатывает приложение «Гарри Поттер» для «Блумсбери», тогда список должен быть прочитан:

Разработчик : IBM Продавец : Bloomsbury App : Гарри Поттер

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

0
задан Dzhu 8 October 2012 в 04:32
поделиться

4 ответа

Я являюсь автором подмножества. Я бы сказал, что «Subset» на самом деле не является своего рода библиотекой ORM. Он не имеет методов работы с базами данных и коллекциями, оставляя его для драйверов Java / Scala. Но он больше ориентируется на преобразования документов MongoDB. Это ядро ​​преобразования является довольно общим и подходит не только для чтения / записи полей, но и для приложений, которые необходимо выполнить, например. миграции документов. Создатели Query / Update Subset предоставляются поверх этого «ядра».

При этом, если вам нужно ORM, на самом деле есть более простые альтернативы. У меня никогда не было намерения Subset конкурировать с настоящими библиотеками ORM, я заполнил пробел, который я встретил в своих проектах.

0
ответ дан Alexander Azarov 22 August 2018 в 14:17
поделиться
  • 1
    Не могли бы вы привести пример сопоставления DBObject с классом case? Я просмотрел Extractors в вашей документации, но отображает только отображение отдельных полей. Благодаря! – expert 16 May 2013 в 08:26
  • 2
    Вероятно, это заслуживает отдельного вопроса? – Alexander Azarov 16 May 2013 в 08:38

Мы используем casbah + salat , и он работает хорошо почти во всех случаях.

3
ответ дан Sergey Passichenko 22 August 2018 в 14:17
поделиться

С помощью Scala вы должны рассмотреть возможность использования Casbah , который является официально поддерживаемым интерфейсом для MongoDB, который основывается на драйвере Java.

Подход Casbah предназначен для добавления жидкости , Scala-friendly синтаксис поверх MongoDB и обработки конверсий общих типов. Если вы попытаетесь сохранить Scala List или Seq в MongoDB, мы автоматически преобразуем его в тип, который может преобразовать Java-драйвер. Если вы читаете тип Java, мы преобразуем его в сопоставимый тип Scala, прежде чем он попадет в ваш код. Все это позволяет вам сосредоточиться на написании наилучшего кода Scala с использованием идиом Scala.

Casbah предоставляет улучшенные интерфейсы для GridFS, Map / Reduce и основные Mongo API. Он также предоставляет синтаксис жидкого запроса, который эмулирует внутренний DSL и позволяет вам писать код, который выглядит так, как вы можете писать в JS Shell. Существует также поддержка для легкого добавления новых механизмов сериализации / десериализации для общих типов данных.

0
ответ дан Stennie 22 August 2018 в 14:17
поделиться
  • 1
    DSL для casbah классный, и это красиво идиоматично для scala. Тем не менее, цель morphia состоит в том, чтобы делать сопоставление объектов из документов mongo, где casbah больше похож на java-драйвер, просто предоставляя вам доступ к карте, из которой вы можете вытаскивать примитивы (или вложенные карты) из ничего для построения объектов -в. Вот почему многие люди используют салаты или подмножества поверх касбэ (или даже морфию или джоссон-картопер - ориентированные на Java мапперы). – Eve Freeman 9 October 2012 в 03:55

Кроме библиотек ORM-Mapper / Client-Libraries, я предлагаю вам попробовать Rouge . Он послужит вам приятным DSL запросов для Mongo. Rogue 1.X будет поддерживать только Lift-MongoDB , но версия 2.x (которая будет поставляться в ближайшем будущем) будет работать для гораздо большего количества библиотек MongoDB.

Пример запроса был бы (чистый код Scala с проверкой типа compiletime):

Venue where (_.mayor eqs 1234) and (_.categories contains "Thai") fetch(10)

, который запрашивает 10 записей в коллекции Venue, где 1234 является мэром, а тайский - одной из его категорий.

0
ответ дан Uwe L. Korn 22 August 2018 в 14:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: