我们在rails项目中的ruby中使用mongoid,我需要一个简单的用户列表,按照我用来查找正确结果集的ID排序。
所以基本上是这样的:
ids = [7, 1, 3]
User.where(:uid.in => ids)
这会给出一个按索引的UID排序的列表。
但它需要按ids
数组排序。
使用mongoid有一个简单的方法吗?感谢。
答案 0 :(得分:1)
使用User.where(:uid.in => ids).order_by(uid: :asc)
或在序列重要时使用聚合
ids = [1, 2, 3]
match = { "$match" => {"uid" => {"$in" => ids } } }
field = { "$addFields" => { "__order" => { "$indexOfArray" => [ ids, "$uid" } } }
sort = { "$sort" : { "__order" : 1 } };
User.collection.aggregate([match, field, sort]);