我试图弄清楚你将如何按值对某个集合进行排序,其他值为==或其他内容,请参阅下面的文档
{
"_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
的费率进行排序?
答案 0 :(得分:1)
据我所知,遗憾的是this is not really possible natively on MongoDB。你可以使它工作using the agreggate framework:
AAA
然后:
meteor add meteorhacks:aggregate