Java MongoDB Query mit Abfrage mit BasicDBList

Fonce

Captain
Registriert
Feb. 2006
Beiträge
3.376
Hi,
ich versuche derzeit bei MongoDB eine Abfrage hinzubekomme welche mir als ergebnis alle Objekte liefert welche in in dem Objekt in einem BasicDBList enthalten sind.
Wenn ich dieses Objekt für einen Query nehme bekomme ich aber nur das erste der darunter aufgeführten Objekte zurück. Es scheint also das ich für eine korrekte Antwort noch was vergessen habe, ich habe aber bisher noch nichts dazu
im Netz gefunden was mir weiter geholfen hat. Hat von euch zufällig jemand eine Idee

Code:
File file1 = new File();
file1.markAsPartialObject();
file1.put("refs");
file1.addReference("1234");

Code:
{ 
        "_id" : ObjectId("521c9542aeaacf3ea0eec041"), 
        "refs" : [ 
                "1234" 
       ] 
},
{
	"_id" : ObjectId("521c960aaeaac6f3c92c34e3"),
	"name" : "test2",
	"refs" : [
		"1234",
		"1234567",
		"1234567890"
	]
}

Java Klassen.

File.java
Code:
/**
 * 
 */

import com.mongodb.BasicDBObject;

public class File extends BasicDBObject {
	public File() {
		// TODO Auto-generated constructor stub
	}
	
	public void addReference(String id){
		if(!containsField("refs")){
			ReferencesList referencesList = new ReferencesList();
			put("refs", referencesList);
		}
		ReferencesList refs = (ReferencesList) get("refs");
		refs.add(id);
	}
}

ReferenceList.java
Code:
/**
 * 
 */

import com.mongodb.BasicDBList;

public class ReferencesList extends BasicDBList {
	public ReferencesList() {
		// TODO Auto-generated constructor stub
		super();
	}
	
	public void addReference(String id){
		add(id);
	}
	
	public void removeReference(String id){
		remove(id);
	}
}
Ergänzung ()

ok habe grade doch noch eine Lösung gefunden.

Das Query Objekt muss mittels QueryBuilder zusammengefügt werden

Code:
QueryBuilder query = new QueryBuilder();
DBObject obj = new BasicDBObject("refs", new BasicDBObject("$in", "1234"));
query.or(obj);

und kann dann mit
Code:
query.get()

geholt werden. ;)
 

Ähnliche Themen

Zurück
Oben