micronaut - mongodb не берет запись - сохранение также довольно странно - PullRequest
0 голосов
/ 02 октября 2018

Я работал над примером проекта можно найти здесь .

Эту проблему сложно объяснить, но, похоже, она проистекает из исходного приложения beer-billing.

Используя проверенный мною клиент командной строки, запись определенно существует в базе данных:

> use beerbilling;
switched to db beerbilling
> show collections;
markup
> db.markup.find();
{ "_id" : ObjectId("5bb395965c9052b3987730d3"), "bottleMarkup" : 5, "name" : "defaultMarkup", "pintMarkup" : 5 }
> 

Первая необычная вещь, которую я заметил, это этот сегмент .найденный в beer-billing/src/main/java/init/BootStrap.java

 Maybe<BeerMarkup> currentBeer = Flowable.fromPublisher(getCosts().find(eq("name","defaultMarkup"))
                    .limit(1)).firstElement();
            BeerMarkup beerCost = new BeerMarkup("defaultMarkup",5.00d,5.00d);
            currentBeer.switchIfEmpty(
                    Single.fromPublisher(getCosts().insertOne(beerCost))
                            .map(success -> beerCost)
            ).subscribe(s-> System.out.println("RESULTS -------------------------------------------------------->>"+s));

    BeerMarkup stock = currentBeer.blockingGet();
    System.out.println("MARKUP--------------------------------------------------------- :::::::: "+stock.getBottleMarkup()+" "+stock.getName()+" "+stock.getPintMarkup());

Кажется, он отображает пустые результаты, я попытался изменить вывод, чтобы переопределить формат json в классе BeerMarkup и вывести метод по умолчанию toString, который по-прежнему отображался как null какимя и 0 в качестве двух значений:

0.0 null 0.0

Еще одна сложная проблема - еще ниже в приложении beer-stock, которое использует клиент для подключения к нему и имеет тот же вывод,Я изменил BeerMarkup на Markup, чтобы сделать его более четким для текущей проблемы и источника проблемы и т. Д.

Вам потребуется загрузить весь проект и попытаться запустить все экземпляры, затем нажатьURL-адрес на переднем конце и попробуйте ссылку stocks, чтобы увидеть это на бэкенде:

MARKUP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> class micronaut.demo.beer.model.Markup 0.0 null 0.0

Не совсем уверен, что было упущено, так как mongodb в beer-stock работает отлично и использует тот жеспособ создания записей в его BootStrap.

Я потратил некоторое время на него и не вижу, что было пропущено

...