【问题标题】:MongoDB Scala driver including specific fields from embedded documentsMongoDB Scala 驱动程序,包括来自嵌入式文档的特定字段
【发布时间】:2016-08-02 13:21:59
【问题描述】:

在 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

有人知道如何做到这一点吗?

【问题讨论】:

    标签: mongodb scala mongodb-query


    【解决方案1】:

    解决方法是不使用 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`))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      相关资源
      最近更新 更多