有一个 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 排序