# guava

> Push for mongodb

Latest version **0.0.5** (published 2012-02-17) · 0 weekly downloads

## Install

```sh
npm install guava
pnpm add guava
yarn add guava
bun add guava
```

Provides the command `guava`.

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.5 |
| Published | 2012-02-17 |
| First published | 2011-08-12 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | * |
| Dependencies | 8 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Craig Condon |
| Maintainers | architectd |

## Links

- npm: https://www.npmjs.com/package/guava
- Repository: https://github.com/crcn/mango
- npm.io page: https://npm.io/package/guava

## Dependencies (8)

- [sk](https://npm.io/package/sk.md) *
- [lazy](https://npm.io/package/lazy.md) *
- [vows](https://npm.io/package/vows.md) *
- [colors](https://npm.io/package/colors.md) *
- [structr](https://npm.io/package/structr.md) *
- [traverse](https://npm.io/package/traverse.md) *
- [socket.io](https://npm.io/package/socket.io.md) *
- [dnode-protocol](https://npm.io/package/dnode-protocol.md) *

## Recent versions

- 0.0.5 (latest) — 2012-02-17
- 0.0.4 — 2011-11-07
- 0.0.3 — 2011-08-13
- 0.0.2 — 2011-08-13
- 0.0.1 — 2011-08-12

## README

Guava - EventEmitter for database queries
=========================================

- Listen to any query for inserts before they're sent to the database
- Saves hits to the database for realtime applications
- Modeled after mondodb, and supports: $all, $exists, $mod, $ne, $in, $nin, $nor, $or, $and, $size

Real world examples:
-------------------

- Twitter realtime stream

Server Example:
---------------

Terminal:

	guava


Javascript file 1:
	
```javascript

var Client = require('guava').Client,
People = Client.connect().collection('people');

People.on({ name: { $in: ['craig','tim','jake'], age: { $gt : 16 } } }, function(person)
{
	
	//craig is a 9001 year old male
	console.log('%s is a %d year old %s', person.name, person.gender, person.age);
});

```

Javascript file 2:

```javascript

var Client = require('guava').Client,
People = Client.connect().collection('people');

//gets caught
People.emit({ name: 'craig', gender: 'male', age: 9001 });

//doesn't get caught
People.emit({ name: 'jake', gender: 'female', age: 14 }); 

```


In-App Example:
---------------
	
```javascript

var Observer = require('guava').Observer;

var messages = new Observer(),
nowMS = new Date().getTime();

messages.on({ name: { $in: ['craig','tim'] }, createdAt: { $gt: new Date(), $lt: new Date(nowMS + 20000)} }, function(item)
{
	console.log(item.message);//hello world!

});

messages.emit({ name: 'craig', message: 'hello world!', createdAt: new Date(nowMS + 10000)});

```

---
_Source: https://npm.io/package/guava · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
