我有一个使用以下结构定义的集合:
// Websites
{
_id: "adasdasda",
title: "Site 1",
comments: [{
text: "nice site 2014",
createdOn: "Sat Dec 26 2014 11:28:57 GMT+0100 (CET)"
}, {
text: "nice site 2015",
createdOn: "Sat Dec 26 2015 11:28:57 GMT+0100 (CET)"
}]
}
我希望以适当的评论顺序显示此信息。在我的情况下,这意味着首先是最新的评论。
我尝试使用:
Websites.findOne({_id:this.params._id}, {sort:{"comments.createdOn": 1}});
和
Websites.findOne({_id:this.params._id}, {sort:{"comments.createdOn": -1}});
但订单保持不变 - 最早的评论。
知道我错过了什么吗?
答案 0 :(得分:1)
sort
适用于文档级别。
这将获取所有匹配的文档,根据子文档中的第一个条目(每个文档的数组中第一个元素的创建时间)对它们进行排序,并返回列表中的第一个文档。
由于您已经通过_id
进行查询,因此这种排序几乎是徒劳的。
Meteor并不真正支持子文档反应,所以你可以:
如果不需要嵌套,我建议将设计弄平。
以下是相关SO和Meteor论坛问题的一些指示: