返回带有已过滤子文档的文档

时间:2014-12-23 16:17:00

标签: mongodb spring-data-mongodb

我的收藏如下:

{
   "_id" : ObjectId("54998c044cf76388944bcb56"),
   "description" : "USP",
   "type" : "FreeInput",
   "localeData" : {
      "Eng" : {
         somedata.....
      },
      "Span" : {
       somedata....
      }
   }
}

我想要做的是能够查询此对象,但过滤localeData个对象。例如,我想指定" Eng"进入我的查询,然后得到以下结果对象:

{
   "_id" : ObjectId("54998c044cf76388944bcb56"),
   "description" : "USP",
   "type" : "FreeInput",
   "localeData" : {
      "Eng" : {
          somedata.....
      }
   }
}

没有聚合,有没有这样做?如果没有,那么我将如何进行聚合?我对整个聚合框架有点不稳定。我也使用spring数据mongodb。

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,这是你的答案:

var fields = {"description" :1, "type": 1, "localeData.Eng" : 1};
db.test.find( {query} , fields)

和聚合你可以使用:

db.test.aggregate(
{
    $match : {query}
},
{
    $project : { "description" :1, "type": 1, "localeData.Eng" : 1 }
}
).result