Skip to content

arunoda/meteor-smart-collections

Repository files navigation

This is a archived project

Smart Collection is now retired & Meteor's Collection implementation has fixes for most of the performance bottlenecks. It is also using the MongoDB oplog just like Smart Collections.

Meteor Smart Collections Build Status

This is a complete re-write of the MongoDB Collection implementation for Meteor. Designed with following 3 areas in mind

  • Speed
  • Efficiency (Memory & CPU)
  • Scalability

This is not a toy project! But a complete Collection replacement with a well tested source code. Still we might have bugs :)

Install

Install Smart Collections from Atmosphere

mrt add smart-collections

Install From Git (If you are not using Meteorite)

mkdir -p packages
#make sure you created the packages folder
git submodule add https://github.com/arunoda/meteor-smart-collections.git packages/smart-collections

Usage

Replace Meteor.Collection with Meteor.SmartCollection. Just that!

eg:-

//old code
Posts = new Meteor.Collection('posts');

//with smart collections
Posts = new Meteor.SmartCollection('posts');

Compatibility

  • Almost compatible with exiting Collection API
  • But server side Cursor.observe() does not exists
  • _id must be a String (will support ObjectID and numbers soon)

Scalability

  • Can be easily scaled with mongodb oplog
  • Follow this guide on how to scale meteor with Smart Collections.