MongoDB mongoid 排序问题

crazyjin · 2014年01月02日 · 最后由 saharaying 回复于 2014年03月14日 · 8715 次阅读

有一个 document Person { include Mongoid:Document has_many :books } 查询 person 的时候能否根据 book_ids 的数组长度来排序?

Person {
include Mongoid:Document
has_many :books
}

这是什么表示法……

正题:加个 books_count 字段。

#1 楼 @Rei 当加了 has_many :books 以后,文档里就会有一个 book_ids 字段。

#2 楼 @Rei 这样会更麻烦

#3 楼 @crazyjin 我指 Class 后面跟一个 block。

#4 楼 @crazyjin 我查了一下不支持直接根据 $size 排序的,除非用 Aggregation 等查询时运算的方法,不知你觉得这个开销值不值得了。

http://stackoverflow.com/questions/9040161/mongo-order-by-length-of-array

#5 楼 @Rei 谢了,我还是加了一个字段

加一个 counter_cache,然后用 books_count 排序

需要 登录 后方可回复, 如果你还没有账号请 注册新账号