在MongoDB查询中,可以聚合并包含嵌入文档中的特定字段。
MongoDB manual部分:包含嵌入式文档中的特定字段
示例查询:
db.getCollection('test')
.aggregate([
{ $project : { "name" : "$subLevel.name" , _id: 1 } }
])
所以像这样的文件:
{
"_id": "id1",
"sublevel":{
"name": "name1"
}
}
汇总到:
{
"_id": "id1",
"name": "name1"
}
但是,我找不到使用mongoDB Scala驱动程序执行此操作的选项。 org.mongodb.scala.model.Projections
有人知道如何做到这一点吗?
答案 0 :(得分:0)
解决方法是不使用Projections,而是指定它将直接生成的json并使用它创建Document。
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`))