0

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<Document> collection = mongoDB.getCollection(collectionName); 
BasicDBObject query = new BasicDBObject();
query.put("nodes", "");
List<Document> test2 = collection.find(query).into(new ArrayList<Document>());

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": []
}

2 Answers 2

2

You just need to project nodes and map.

import static com.mongodb.client.model.Projections.*;

List<Document> nodes = (List<Document>) collection.find().projection(fields(include("nodes"), excludeId())).map(document -> document.get("nodes")).first();
Sign up to request clarification or add additional context in comments.

2 Comments

I cant get the methods include() and excludeId() to be recognized. I tried importing everything but it still won't work
Added the static import to the answer.
0

Thank you Sagar, your code snippet helped me a lot. Just in case if someone wants to target the filtering on a field (ex - id) within the nodes document then the following can be used.

List<Document> nodes =  (List<Document>) collection.find().projection(elemMatch("nodes",new Document("id",2))).map(document -> document.get("nodes")).first();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.