2016-08-02 9 views
0

In einer MongoDB-Abfrage ist es möglich, bestimmte Felder aus eingebetteten Dokumenten zu aggregieren und einzubeziehen.MongoDB Scala-Treiber mit bestimmten Feldern aus eingebetteten Dokumenten

MongoDB manual Abschnitt: Fügen Sie Spezifische Felder aus eingebetteten Dokumente

Beispiel query:

db.getCollection('test') 
.aggregate([ 
    { $project : { "name" : "$subLevel.name" , _id: 1 } } 
]) 

So ein Dokument wie:

{ 
    "_id": "id1", 
    "sublevel":{ 
     "name": "name1" 
    } 
} 

aggregiert zu:

{ 
    "_id": "id1", 
    "name": "name1" 
} 

Ich finde jedoch nicht die Option, dies mit dem mongoDB Scala-Treiber zu tun. org.mongodb.scala.model.Projections

Hat jemand eine Idee, wie man das macht?

Antwort

0

Die Problemumgehung besteht darin, die Projektionen nicht zu verwenden, sondern den json anzugeben, den sie direkt generieren und ein Dokument damit erstellen würde.

val project = Document(Json.obj("$project" -> Json.obj("name" -> "$subLevel.name")).toString) 
val `match` = Document(Json.obj("$match" -> Json.obj("name" -> "item1")).toString) 

collection.aggregate(Seq(project, `match`)) 
Verwandte Themen