以特定格式获取mongo数据

时间:2017-10-10 19:15:22

标签: java mongodb rest

我有一个名为' demo'的mongo集合,它具有以下结构:

{
    "_id" : ObjectId("59d600182c44a11cec2b9ac5"),
    "User_ID" : "user-12",
    "Status" : {
        "User_Status" : "Registered",
        "Location" : "USA"
    }
}

我使用了以下mongo查询来获取数据:

db.demo.find({},
  {
      User_ID:1,
      "Status.User_Status":1
  })

以上查询的输出为:

{
    "_id" : ObjectId("59d600182c44a11cec2b9ac5"),
    "User_ID" : "user-12",
    "Status" : {
        "User_Status" : "Registered"
    }
}

但我的要求是实现以下输出:

{
    "_id" : ObjectId("59d600182c44a11cec2b9ac5"),
    "User_ID" : "user-12",
    "User_Status" : "Registered"

}

是否有任何方法可以禁用父文档(状态)并仅获取子文档" User_Status"的结果。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

是的,您可以aggregate使用project代替find

使用以下命令获得所需结果:

db.dummy.aggregate( 
{
    $project:
    {
        User_ID:1,
        User_Status:"$Status.User_Status"
    }
})

答案 1 :(得分:2)

使用aggregate代替find和project运算符。

db.demo.aggregate( {$project: {User_Status:'$Status.User_Status', User_ID:'$User_ID'}} );