Fonce
Captain
- Registriert
- Feb. 2006
- Beiträge
- 3.394
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
Java Klassen.
File.java
ReferenceList.java
ok habe grade doch noch eine Lösung gefunden.
Das Query Objekt muss mittels QueryBuilder zusammengefügt werden
und kann dann mit
geholt werden.
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.
