Meteor JS - 按数组排序集合值

时间:2015-05-29 01:25:13

标签: javascript mongodb meteor

我试图弄清楚你将如何按值对某个集合进行排序,其他值为==或其他内容,请参阅下面的文档

{
  "_id": "zLFp8KptxzACGtAZj",
  "createdAt": "2015-05-28T21:11:57.044Z",
...
  "profile": {
    "firstname": "Nelle",
    "lastname": "Carroll",
...
    "services": [
      {
        "serviceId": "Gy7uptfk8LNWMgEQy",
        "rate": 19
      },
      {
        "serviceId": "KvFETNLK8cJ78e6gy",
        "rate": 1
      },
      {
        "serviceId": "xwY532yxcWQ7qAjuP",
        "rate": 42
      }
    ],
}
...
}

假设我有一个大约10个用户的集合,其服务包含serviceId xwY532yxcWQ7qAjuP我可以使用Meteor.users.find({ 'profile.services.serviceId' : service });找到它们但如果我想使用Meteor.users.find({ 'profile.services.serviceId' : service }, , { sort: { 'profile.services.rate' : 1 } });按其费率对用户进行排序它会根据任何服务中具有最高费率的用户对用户进行排序,而不只是xwY532yxcWQ7qAjuP那么我将如何按照serviceId === xwY532yxcWQ7qAjuP的费率进行排序?

1 个答案:

答案 0 :(得分:1)

据我所知,遗憾的是this is not really possible natively on MongoDB。你可以使它工作using the agreggate framework

AAA

然后:

meteor add meteorhacks:aggregate