How to use the pouchdb-selector-core.filterInMemoryFields function in pouchdb-selector-core

To help you get started, we’ve selected a few pouchdb-selector-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github pubkey / rxdb / src / query-change-detector.ts View on Github external
export function _resortDocData(
    queryChangeDetector: QueryChangeDetector,
    resultsData: any[]
) {
    const sortOptions = _getSortOptions(queryChangeDetector);
    const rows = resultsData.map(doc => {
        return {
            doc: queryChangeDetector.query.collection.schema.swapPrimaryToId(doc)
        };
    });
    const inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);

    // TODO use createFieldSorter
    const sortedRows: any[] = filterInMemoryFields(
        rows, {
            selector: queryChangeDetector.query.massageSelector,
            sort: sortOptions
        },
        inMemoryFields
    );
    const sortedDocs = sortedRows
        .map(row => row.doc)
        .map(doc => queryChangeDetector.query.collection.schema.swapIdToPrimary(doc));
    return sortedDocs;
}
github pouchdb / pouchdb / packages / node_modules / pouchdb-find / src / adapters / local / find / index.js View on Github external
}).then(function (res) {
      if (opts.inclusive_start === false) {
        // may have to manually filter the first one,
        // since couchdb has no true inclusive_start option
        res.rows = filterInclusiveStart(res.rows, opts.startkey, indexToUse);
      }

      if (queryPlan.inMemoryFields.length) {
        // need to filter some stuff in-memory
        res.rows = filterInMemoryFields(res.rows, requestDef, queryPlan.inMemoryFields);
      }

      var resp = {
        docs: res.rows.map(function (row) {
          var doc = row.doc;
          if (requestDef.fields) {
            return pick(doc, requestDef.fields);
          }
          return doc;
        })
      };

      if (indexToUse.defaultUsed) {
        resp.warning = 'no matching index found, create an index to optimize query time';
      }
github pubkey / rxdb / dist / es / query-change-detector.js View on Github external
export function _resortDocData(queryChangeDetector, resultsData) {
  var sortOptions = _getSortOptions(queryChangeDetector);

  var rows = resultsData.map(function (doc) {
    return {
      doc: queryChangeDetector.query.collection.schema.swapPrimaryToId(doc)
    };
  });
  var inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector); // TODO use createFieldSorter

  var sortedRows = filterInMemoryFields(rows, {
    selector: queryChangeDetector.query.massageSelector,
    sort: sortOptions
  }, inMemoryFields);
  var sortedDocs = sortedRows.map(function (row) {
    return row.doc;
  }).map(function (doc) {
    return queryChangeDetector.query.collection.schema.swapIdToPrimary(doc);
  });
  return sortedDocs;
}
/**
github pubkey / rxdb / dist / es / query-change-detector.js View on Github external
export function _isSortedBefore(queryChangeDetector, docDataLeft, docDataRight) {
  var sortOptions = _getSortOptions(queryChangeDetector);

  var inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);
  var swappedLeft = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataLeft);
  var swappedRight = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataRight);
  var rows = [swappedLeft, swappedRight].map(function (doc) {
    return {
      id: doc._id,
      doc: doc
    };
  }); // TODO use createFieldSorter

  var sortedRows = filterInMemoryFields(rows, {
    selector: queryChangeDetector.query.massageSelector,
    sort: sortOptions
  }, inMemoryFields);
  return sortedRows[0].id === swappedLeft._id;
}
/**
github pubkey / rxdb / src / query-change-detector.ts View on Github external
docDataRight: any
): boolean {
    const sortOptions = _getSortOptions(queryChangeDetector);
    const inMemoryFields = Object.keys(queryChangeDetector.query.toJSON().selector);
    const swappedLeft = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataLeft);
    const swappedRight = queryChangeDetector.query.collection.schema.swapPrimaryToId(docDataRight);
    const rows = [
        swappedLeft,
        swappedRight
    ].map(doc => ({
        id: doc._id,
        doc
    }));

    // TODO use createFieldSorter
    const sortedRows = filterInMemoryFields(
        rows, {
            selector: queryChangeDetector.query.massageSelector,
            sort: sortOptions
        },
        inMemoryFields
    );
    return sortedRows[0].id === swappedLeft._id;
}