Мы используем mongoid gem в нашем приложении.У нас есть набор записей со значениями nil
, например, nil, nil, nil,3,4,1
.Мы хотим выводить как 1,3,4,nil,nil,nil
.
Мы используем нумерацию страниц, которая использует Mongoid::Criteria
объект.Следовательно, мы не можем написать два запроса, а затем использовать concat, поскольку он преобразуется в массив, и ему необходим объект Mongoid::Criteria
.
Я попытался выполнить два запроса с nil
, но не с нулевым значением, а затем использовал метод merge
объединить их, но это привело к добавлению этих двух условий и к нулю записей.
Есть ли способ использовать mongoid gem, чтобы выдвинуть значения nil
до конца и не сделать значения nil
отсортированными вв порядке возрастания в начале?
Также
pipeline = [{"$match": {"_type": "Category"}},{"$project": {"sort_index": 1,"uri_id": 1, "nlt": { "$ifNull": [ "$sort_index", Time.now]}}},{"$sort": { "nlt": 1}}]
Category.collection.aggregate(pipeline)
Это дает Mongo::Collection::View::Aggregation
, но мне нужно Mongoid::Criteria
для нумерации страниц.
Если мы используем раздел, это вернетобъект массива, но нам нужен объект Mongoid :: Criteria