I am trying to find / load all elements in the "nodes" array into a Java List or Hashmap.
I'm dealing with a specific JSON format that I cannot modify. The Mongo DB collection contains only one document, and that document is shown below. I am trying to query all elements of the "nodes" array but can't manage to do so.
MongoCollection collection = mongoDB.getCollection(collectionName);
BasicDBObject query = new BasicDBObject();
query.put("nodes", "");
List test2 = collection.find(query).into(new ArrayList());
Test2 returns NULL at the moment. I know I'm wrong but can't figure out how to do it.
And here is the JSON
{
"_id": "12123434",
"nodes": [
{
"id": "1",
"name": "bla",
"attributes": [
"string1",
"string2"
]
},
{
"id": "2",
"name": "blabla",
"attributes": [
"string1",
"string2"
]
}
],
"groups": []
}
解决方案
You just need to project nodes and map.
import static com.mongodb.client.model.Projections.*;
List nodes = (List) collection.find().projection(fields(include("nodes"), excludeId())).map(document -> document.get("nodes")).first();