2016-11-24 3 views
0

Dies sind 2 verschiedene Sammlungen in einer Datenbank. Ich bin nicht in der Lage herauszufinden, wie die Werte aus den Sammlungen mit Java dynamisch abgerufen werden.Abrufen der Werte aus der Mongodb-Sammlung mit Java

Ich mag die Werte durch Java-Programm holen, aber ohne die fest codierten Werte wie „VerifyEmail.LicenseKey“ & „wsf: status.arg0.age“, wie oben in der Java erwähnte code.Is es, einen Weg zu holen die Werte ohne Hardcoding in Java.

Collection 1:

{ 
"_id" : ObjectId("583567ac6c85e71adc1f8bae"), 
"wsf:status" : { 
    "arg0" : { 
     "name" : "James", 
     "phonenum" : NumberLong(9848222338), 
     "age" : 18 
     "status" : "N" 
     } 
    }, 
} 

Abfrage 1: Hier bin ich fest einprogrammierte Werte mit dem gewünschten Ergebnis aus der Sammlung 1.

db.xmlcoll1.find({"wsf:status.arg0.age":18})

Collection 2 zu holen:

{ 
"_id" : ObjectId("582446686c85e73a70696666"), 

"VerifyEmail" : { 
    "xmlns" : "http://ws.cdyne.com/", 
    "email" : "[email protected]", 
    "LicenseKey" : 123 
} } 

Abfrage 2:

Hier verwende ich den Hardcoded Wert des Elements "VerifyEmail" , um die Werte zu holen.

db.xmlcoll.find({"VerifyEmail.LicenseKey":123});

Antwort

1

können Sie versuchen, Morphia zu verwenden, wenn die Leistung nicht für Sie wichtig ist. Und verwenden Sie solche Konstruktionen für Abfragen:

underpaid = datastore.createQuery(Employee.class) 
       .field("age").lessThanOrEq(18) 
       .asList(); 
+0

Wie würde Ihre erwartete Abfrage aussehen? – RocketRaccoon

+0

'BasicDBObject query = neu BasicDBObject();' query.put ("wsf: status.arg0.status", "N"); '' DBObject result = collection.findOne (Abfrage); 'Dies ist die Abfrage. Aber ich bin nicht in der Lage, herauszufinden, wie man" wsf: status.arg0 "aus der Sammlung holt, ohne es statisch zu machen. –

+0

also ... Sie wollen quirey Dokument, bekommen Sie es Struktur und verwenden Sie es, ohne manuell in Code für die folgenden quireuies zu deklarieren, habe ich Recht? – RocketRaccoon

Verwandte Themen