Получить поле массива из коллекции, используя драйвер Java для mongodb - PullRequest
0 голосов
/ 09 октября 2018

У меня проблема при попытке извлечь определенные поля MongoDB в виде массива.Итак, у меня есть коллекция с именем 'users' и вложенными данными в users в поле с именем 'items', например:

{ "_id" : "1", "username" : "apacheuser", "password" : "Summer95!", "firm" : "apache", "roles" : [ "client,admin" ], "items" : [ { "_id" : "12323", "item-id" : "12312", "item-name" : "İtemic", "price" : 123123, "quantity" : 1231231 }, { "_id" : "123123", "item-id" : "12313", "item-name" : "aftereror", "price" : 1232, "quantity" : 12313213 } ] }
{ "_id" : "2", "username" : "springuser", "password" : "Spring99!", "firm" : "SpringSource", "roles" : [ "client" ], "items" : [ { "_id" : "01231q", "item-id" : "1233", "item-name" : "Patates", "price" : 12321, "quantity" : 12 } ] }
{ "_id" : "3", "username" : "user3", "password" : "Autumn03!", "firm" : "RedHat", "roles" : [ "client" ] }

Используя приведенный ниже запрос, я могу получить нужные поля, однакодля анализа JSON мне нужно удалить тег items из результата моего запроса.

Bson bsonFilter = Filters.eq("username", "apacheuser");
List<Document> results =db.getCollection("users").find(bsonFilter).projection(fields(include("items"),excludeId()))

Ожидаемый результат будет следующим:

[ { "_id" : "12323", "item-id" : "12312", "item-name" : "İtemic", "price" : 123123, "quantity" : 1231231 }, { "_id" : "123123", "item-id" : "12313", "item-name" : "aftereror", "price" : 1232, "quantity" : 12313213 } ] }

Вместо этого я получаю следующее:

"items" : [{ "_id" : "12323", "item-id" : "12312", "item-name" : "İtemic", "price" : 123123.0, "quantity" : 1231231 }, { "_id" : "123123", "item-id" : "12313", "item-name" : "aftereror", "price" : 1232.0, "quantity" : 12313213 }] }

Так что совершенно очевидно, что мне просто нужно удалить тег 'items' для правильного разбора.Но я не совсем понимаю, как это сделать.

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