MongoDB mongoid 排序问题

crazyjin · January 02, 2014 · Last by saharaying replied at March 14, 2014 · 8704 hits

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

You need to Sign in before reply, if you don't have an account, please Sign up first.