Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bloc

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bloc

Functional Reactive array filtering and aggregation with a MongoDB inspired syntax.

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-83.33%
Maintainers
1
Weekly downloads
 
Created
Source

Bloc

Functional Reactive array filtering and aggregation with a MongoDB inspired syntax.

  • Usage
  • Query Selectors

Usage

For normal usage arrays are returned with the results.

var Bloc = require('bloc');
var data = [
  {
    id: 1,
    region: 'us-east-1'
  },
  {
    id: 2,
    region: 'us-west-1'
  }
];
var filter = {
  region: {
    $eq: 'us-east-1'
  }
};

Bloc.filter(data, filter).then(function(results) {
  // Results contains all items in the `us-east-1` region.
}, function(reason) {
 // Something went wrong
});

If desired, a stream can be returned instead.

var Bloc = require('bloc');
var data = [
  {
    id: 1,
    region: 'us-east-1'
  },
  {
    id: 2,
    region: 'us-west-1'
  }
];
var filter = {
  region: {
    $eq: 'us-east-1'
  }
};

Bloc.filter(data, filter, { stream: true }).then(function(stream) {
  stream.subscribe(function(item) {
    // Stream will eventually contain all items in the `us-east-1` region.
  });
}, function(reason) {
 // Something went wrong
});

Query Selectors

Below is a list of all the supported query selectors.

Comparison Operators

Used for the comparison of different values for filters.

$eq

Matches all values that are equal to a specified value.

{
  <field>: { 
    $eq: <value>
  }
}

$ne

Matches all values that are not equal to a specified value.

{
  <field>: { 
    $ne: <value>
  }
}

$gt

Matches values that are greater than a specified value.

{
  <field>: { 
    $gt: <value>
  }
}

$gte

Matches values that are greater than or equal to a specified value.

{
  <field>: { 
    $gte: <value>
  }
}

$lt

Matches values that are less than a specified value.

{
  <field>: { 
    $lt: <value>
  }
}

$lte

Matches values that are less than or equal to a specified value.

{
  <field>: { 
    $lte: <value>
  }
}

$in

Matches any of the values specified in an array.

{
  <field>: { 
    $in: [ <value1>, <value2>, ... <valueN> ]
  }
}

$nin

Matches none of the values specified in an array.

{
  <field>: { 
    $nin: [ <value1>, <value2>, ... <valueN> ]
  }
}

$mod

Performs a modulo operation on the value of a field and selects documents with a specified result.

{
  <field>: {
    $mod: [
      divisor,
      remainder
    ]
  }
}

$regex

Selects documents where values match a specified regular expression.

{
  <field>: {
    $regex: <regular expression>
  }
}

$where

Matches documents that satisfy a JavaScript function.

{
  <field>: {
    $where: <function>
  }
}

Logical Operators

Used for grouping together filter clauses.

$or

Joins query clauses with a logical OR returns all documents that match the conditions of either clause.

{ 
  $or: [
    {
      <expression1>
    },
    {
      <expression2>
    },
    ...,
    {
      <expressionN>
    }
  ]
}

$and

Joins query clauses with a logical AND returns all documents that match the conditions of both clauses.

{ 
  $and: [
    {
      <expression1>
    },
    {
      <expression2>
    },
    ...,
    {
      <expressionN>
    }
  ]
}

$not

Inverts the effect of a query expression and returns documents that do not match the query expression.

{
  <field>: {
    $not: {
      <operator>: <value>
    }
  }
}

$nor

Joins query clauses with a logical NOR returns all documents that fail to match both clauses.

{ 
  $nor: [
    {
      <expression1>
    },
    {
      <expression2>
    },
    ...,
    {
      <expressionN>
    }
  ]
}

Array Operators

Operators to use when filtering arrays.

$all

Matches arrays that contain all elements specified in the query.

{
  <field>: {
    $all: [
      <value1>,
      <value2>,
      ...,
      <valueN>
    ]
  }
}

$elemMatch

Selects documents if element in the array field matches all the specified conditions.

{
  <field>: {
    $elemMatch: {
      <query1>,
      <query2>,
      ...,
      <queryN>
    }
  }
}

$size

Selects documents if the array field is a specified size.

{
  <field>: {
    $size: <number>
  }
}

Keywords

FAQs

Package last updated on 23 Apr 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc