npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kwaai-crud

v0.1.4

Published

CRUD helpers for mongoDB

Downloads

48

Readme

#kwaai-crud

CRUD helpers for mongoDB

##Description A set of helper tools to assist in working with CRUD operations with Node.

Why not use Mongoose? Mongoose is a great ORM tool for Mongo. BUT it's an ORM tool in an environment where we're meant to be getting away from the friction of ORM.

The kwaai bits and pieces allow for a more modular approach to working with NodeJS and Mongo and are much less prescriptive and more flexible.

##API

###insert(options,callback) inserts a record into the specified collection options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @schema(object): JSON schema object to validate input against @validate(boolean): validate the input against a schema, if true schema is required @coerce(boolean):coerce the input to the specified types in the JSON schema @data(object): data to be inserted

###getById(options,callback) gets a record by id options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @id(string or monogid): the id of the object to retrive @query(string): query to add to the id search. Useful for multitenat or environments where you want to limit results @schema(object): JSON schema object to merge the schema links into on return for hyperschema

###getByQuery(options,callback) gets a record by query options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @query(string): query to add to the id search. Useful for multitenant or environments where you want to limit results. @rawQuery(object): the raw mongo query to use if you don't want to parse the normal query. @schema(object): JSON schema object to merge the schema links into on return for hyperschema

###aggregate(options,callback) performs an aggregate options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @pipeline(array): mongo compliant aggregate pipeline. @allowDiskUse: allow write to fisk for large queries @readPreference: allow reading from other members of the array

###countByQuery(options,callback) returns a record count based on a query options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @query(string): query to add to the id search. Useful for multitenant or environments where you want to limit results. @rawQuery(object): the raw mongo query to use if you don't want to parse the normal query. @schema(object): JSON schema object to merge the schema links into on return for hyperschema

Be careful using rawQuery, can cause problems if anything but count and where are used.

###getFirstOrNull(options,callback) gets a record by query and returns the first item or null options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @query(string): query to add to the id search. Useful for multitenant or environments where you want to limit results. @rawQuery(object): the raw mongo query to use if you don't want to parse the normal query. @schema(object): JSON schema object to merge the schema links into on return for hyperschema

###updateFull(options,callback) replaces a record at id options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @id(string or monogid): the id of the object to retrive @query(string): query to add to the id search. Useful for multitenat or environments where you want to limit results @schema(object): JSON schema object to validate input against @validate(boolean): validate the input against a schema, if true schema is required @coerce(boolean):coerce the input to the specified types in the JSON schema @data(object): data to be replaced

###updatePart(options,callback) updates a part of the record at specified id with the specified JSON patch options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @id(string or monogid): the id of the object to retrive @query(string): query to add to the id search. Useful for multitenat or environments where you want to limit results @schema(object): JSON schema object to validate input against @validate(boolean): validate the input against a schema, if true schema is required @coerce(boolean):coerce the input to the specified types in the JSON schema @data(object): json patch to be applied

###delete(options,callback) deletes a record at the specified id options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @id(string or monogid): the id of the object to retrive @query(string): query to add to the id search. Useful for multitenat or environments where you want to limit results

###validateData(options,callback) validates data against teh specified JSON schema options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @schema(object): JSON schema object to validate input against @data(object): data to validate against

###coerceData(options,callback) NOT WORKING coerces a data object into a valid schema options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @schema(object): JSON schema object to coerce input against @data(object): data to coerce

###generateDataPatch(options,callback) generates a new given a patch and id/query and returns it. options: @collection(collection object or locator): mongodb native collection or locator {name:"name",connectionstring:"connectionstring"} @id(string or monogid): the id of the object to retrive @query(string): query to add to the id search. Useful for multitenat or environments where you want to limit results @data(object): json patch to be applied