Как я могу вернуть XML из коннектора Монго в Java? - PullRequest
0 голосов
/ 01 января 2019

Я пишу веб-сервис RESTful, в котором я хочу вернуть XML после выполнения запроса в Mongo с использованием Mongo Connector.

Я много раз искал и не нашел ни одного хорошего учебника в Интернете.Нужна помощь XD

public class MongoConnector {
    private MongoClient mongoClient;

    public MongoConnector(){
        //TODO: Parameterizar connection string
        mongoClient = new MongoClient(new MongoClientURI("mongodb://localhost:27017"));
    }

    public String getData(String databaseName, String collectionName, String field, String value){
        MongoDatabase database = mongoClient.getDatabase(databaseName);//"restaurantsDB"
        MongoCollection<Document> collection = database.getCollection(collectionName);//"restaurants"
        Bson filter = eq(field, value);//borough, bronx

        return StreamSupport.stream(collection.find(filter).limit(10).spliterator(), false)
                .map(Document::toJson)
                .collect(Collectors.joining(", ", "[", "]")).toString();
    }

    public String aggregateDataByQueryString(String databaseName, String collectionName, String query){
        MongoDatabase database = mongoClient.getDatabase(databaseName);//"restaurantsDB"
        MongoCollection<Document> collection = database.getCollection(collectionName);//"restaurants"
        BasicDBObject q = BasicDBObject.parse(query);
        //Mapear o resultado para um array em JSON
        return StreamSupport.stream(collection.aggregate(Arrays.asList(q)).spliterator(), false)
                .map(Document::toJson)
                .collect(Collectors.joining(", ", "[", "]")).toString();
    }
}

1 Ответ

0 голосов
/ 01 января 2019

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

  1. Поскольку org.bson.Document реализует java.util.Map, вы можете посмотретьв Как преобразовать XML в java.util.Map и наоборот в качестве потенциального решения.
  2. Поскольку вы отображаете документ в строку JSON перед его возвратом, вы можете попробовать Преобразование JSON в XML в Java в качестве другого потенциального решения.

Я не слишком знаком с MongoDB, но я считаю, что эти решения будут работать, поскольку объект Document является "представлениемдокумент в виде карты ", и потому что он может быть чисто преобразован в строку JSON .

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