按mongo中文档数组中的元素数量排序

min*_*eow 5 mongodb mongoid

假设我有一个答案集合,其中每个答案都包含一个 user_ids 数组。

  • 答案 has_and_belongs_to_many:用户

是否可以有一个按 user_ids 数量排序的查询?

Answer.all.desc(num_user_ids)

我可以缓存这个号码,但我希望我不必这样做。我正在使用 mongoid

dla*_*law 5

这可能是这个问题的重复:How can I sort MongoDB query results by inside array size?

总结一下:不,您不能根据需要按数组长度排序,建议在文档中存储一个包含用户数量的附加字段。

不过,您可以使用 MapReduce 来做到这一点。但这会产生另一个表,这可能是不希望的。