【发布时间】:2016-06-03 11:08:49
【问题描述】:
这是关于 cmets 的好恶。我想按相似度对 cmets 进行排序,因此将首先出现具有更多赞的评论。问题是不喜欢的 cmets 比没有不喜欢的 cmets 出现在前面。
我想要什么:
- 评论 A:1 喜欢 0 不喜欢
- 评论 B:0 喜欢 0 不喜欢
- 评论 C:0 喜欢 1 不喜欢
我实际上得到了什么:
- 评论 A:1 喜欢 0 不喜欢
- 评论 C:0 喜欢 1 不喜欢
- 评论 B:0 喜欢 0 不喜欢
我对我的流星助手的 mongo 查询:
Missatges.find({ topic: 'xxx' }, { sort: { like:{ $size: -1}, dislike:{ $size: 1}, date: -1 } }).fetch();
请注意,我使用 $size 是因为喜欢和不喜欢是用户 _id 的数组。 这是我的评论架构:
author: {
type: String
},
authorId: {
type: SimpleSchema.RegEx.Id
}
isAnswer: {
type: Boolean
},
parentId: {
type: SimpleSchema.RegEx.Id,
optional: true
},
date: {
type: Date
},
topic: {
type: String
},
likes: {
type: [SimpleSchema.RegEx.Id]
},
dislikes: {
type: [SimpleSchema.RegEx.Id]
},
answers: {
type: [SimpleSchema.RegEx.Id],
optional: true
},
text: {
type: String,
max: 900,
}
【问题讨论】:
-
请展示您的评论模型设计
-
它返回的结果是您正在使用的查询应该返回的方式。
-
也许是我的英语,也许是你的……但抱歉,我不明白你的评论@titi23
-
运行查询得到的结果是正确的。这就是查询应该返回的方式。希望现在很清楚。