Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When using MemoryStore, transaction() is undefined #58

Closed
fedoranimus opened this issue Oct 30, 2014 · 1 comment
Closed

When using MemoryStore, transaction() is undefined #58

fedoranimus opened this issue Oct 30, 2014 · 1 comment

Comments

@fedoranimus
Copy link

Inexplicable undefined transction() function on Store. When using dStore, I can access functions such as "get", "put", "remove", etc on a store, but "transaction" is undefined. Also, I can't even see Collection.js being loaded, which is odd, since I'm using fetch(), and I thought that returned a collection. How can I return a collection without a collection object?

@brandonpayton
Copy link
Contributor

Hi @fedoraniumus,

While transaction() is a documented method that can be present on a store, none of the stores in the dstore package implement it. It is simply presented as an option for those who need transaction support on a store.

It looks like we need to improve how our documentation speaks about Collection and Store. We use "Collection" and "Store" to describe different aspects of an object store.

A Collection represents a list of items and the query that produces the list of items. When you create an instance of dstore/Memory, that instance is a Collection of all items in the store. When you call filter() on that instance, a Collection is returned representing the list of items resulting from the filter operation. However, the only way the Collection's items are exposed is through the return value of the fetch or fetchRange methods or by using the forEach method.

A Store is a Collection that also includes the ability to get, add, put, and remove individual objects. When you call filter on a Memory store, the resulting object is both a Collection and a Store. It is a Collection representing the filter query, and it is a Store in that it exposes methods for retrieving, creating, updating, and removing objects from the entire store. This provides a useful encapsulation where collection consumers receive a single object representing a query and, when available, the ability to add, update, and remove items from the store.

Does that help?

@kriszyp kriszyp closed this as completed Nov 14, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants