Не удается отфильтровать или заказать с помощью плагина реляционного пакета - PullRequest
0 голосов
/ 23 декабря 2018

С последних двух дней я пытался сортировать и / или фильтровать документы в pouchdb с помощью плагина реляционного пакета, но по какой-то причине он не работает

Я прочитал документы из официальной документации Pouch DB иЯ выполнил следующие действия, т. е. я создал индекс, а затем вызвал метод find('type',options) с типом документа и параметрами, как указано в приведенном ниже коде, но полученные результаты упорядочены по идентификаторам, сложная часть заключается в том, что я могу передать «предел»опция "option" в опциях, и она работает, но в том же месте опция "sort", кажется, не работает, также было бы полезно полностью, если кто-то может указать мне место, где я могу найти, как фильтровать в реляционном пакете,официальные документы GitHub не помогут

get() {
this.db.createIndex({
  index: {
    fields: ['title']
  }
}).then((data)=>{
  this.db.rel.find('content', {
    limit : 1,
    sort: ['title']
  }).then((data)=>{console.log(data)});
}).catch(console.log)
}
// the schema applied
this.db.setSchema([
  {singular: 'user', plural: 'users', relations: { contents: {hasMany: 'content'}}},
  {singular: 'content', plural: 'contents', relations: { user: {belongsTo: 'user'}}}
]);

Я ожидаю результатов, упорядоченных по названию (я даже пытался упорядочить по созданным), но я получаю следующее:

{title: "Test title 5", description: "Test description 5", created: "2018-12-20T02:44:59.127Z", modified: "2018-12-20T02:44:59.127Z", id: "2A57FB9C-4E29-590C-AA4E-751FAA0F0AD9", …}

{title: "Test title 2", description: "Test description 2", created: "2018-12-19T03:40:56.302Z", modified: "2018-12-19T03:40:56.302Z", id: "2F568411-D955-42ED-9622-1C191AD6532D", …}

{title: "Test title 4", description: "Test description 4", created: "2018-12-20T02:44:51.654Z", modified: "2018-12-20T02:44:51.654Z", id: "319D2427-5862-477A-AAEA-CB2536C2430E", …}

{title: "Test title 1", description: "Test description 1", created: "2018-12-19T03:40:50.166Z", modified: "2018-12-19T03:40:50.166Z", id: "4D982FA6-99A9-4545-BC10-CBEF9530B3FA", …}

{title: "Test title 6", description: "Test description 6", created: "2018-12-20T02:45:06.927Z", modified: "2018-12-20T02:45:06.927Z", id: "7C4637AB-B626-E5FD-9353-5A7F926B98ED", …}

1 Ответ

0 голосов
/ 23 декабря 2018

Если вы ожидаете получить большое количество записей, есть только один хороший способ сделать это: allDocs.

relational-pouch предназначен для работы с небольшой коллекцией записей, относящихся к одной,или, самое большее, несколько отдельных записей.

Два инструмента вполне совместимы и, с некоторыми экспериментами и планированием, очень хорошо работают вместе.Я работаю с большими наборами данных с allDocs, отображаю списки в браузере с live-find и, когда конечный пользователь выбирает один элемент, извлекает соответствующие записи для отображения / изменения с помощью db.rel.find().В таком случае сортировка вообще не является проблемой.

Другими словами ... если вам НУЖНА сортировка и фильтрация, вам, вероятно, следует сначала получить краткий список первичных (основных) записей и только потом использоватьих ключевые свойства в db.rel.find () для извлечения их вторичных (вспомогательных, связанных, подробных) записей.

Чтобы подчеркнуть ... allDocs должен быть вашим основным инструментом иВаши дизайнерские решения должны быть сосредоточены на нем, а не на реляционном пакете.

Обновление: 2018/12/23 16:00 EST

Если все, что вам нужно сделать, этоубедитесь, что ваши записи в порядке дат, просто убедитесь, что ваши идентификаторы в порядке дат ...

{id: "Test_2_20181219034050166", title: "Test title 1", description: "Test description 1", created: "2018-12-19T03:40:50.166Z", modified: "2018-12-19T03:40:50.166Z", …}

Проверьте ссылку на сортировку в команде db.rel.find (type) .Такие специализированные идентификаторы создаются с помощью метода класса db.rel.makeDocID (parsedID) .

...