Cloudant couchdb запрос пользовательская сортировка

Я хочу отсортировать результаты запроса couchdb a.k.a Mango запросы, основанные на пользовательской сортировки. Мне нужна пользовательская сортировка, потому что если Statusможет быть одно из следующих:

  1. Active = 1
  2. Продано = 2
  3. Контингент = 4
  4. Ожидание = 3

Я хочу отсортировать результатыStatus, но не в алфавитном порядке, а мой собственный вес, который я присваиваю каждому значению, которое можно увидеть в приведенном выше списке. Вот селектор для Statusзапроса, который я использую:

{type:"Property", Status:{"$or":[{$eq: "Pending"}, {$eq:"Active"}, {$eq: "Sold"}]}}

Если я использую sortмассив в моем JSON со статусом, я думаю, что он будет сортировать по алфавиту, который я не хочу.

1 ответ

  1. Вы действительно ищете результаты, основанные на»статусе». Можно создать представление, подобное этому:

    function(doc) { if (doc.type == "Property") { emit(doc.Status, doc);}}

    Когда вы используете его, вызовите его 4 раза в нужном порядке, и вы получите нужный результат. Это исключило бы необходимость сортировки.