У меня проблема при попытке извлечь определенные поля 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'
для правильного разбора.Но я не совсем понимаю, как это сделать.