i am new with nosql concept, so when i start to learn PouchDB, i found this conversion chart. My confusion is, how PouchDB handle if lets say i have multiple table, does it mean that i need to create multiple databases? Because from my understanding in pouchdb a database can store a lot of documents, but a document mean a row in sql or am i misunderstood?
相关问题
- How to purge a document
- How to purge CouchDB documents
- MongoDB: groupby subdocument and count + add total
- Does using non-SQL databases obviate the need for
- Querying with “contains” on a list of user defined
相关文章
- How to get last created document in couchdb?
- How does Cassandra scale horizontally ?
- Modelling a Chat like Application in Firebase
- CouchDB Java client
- NoSQL Injection? (PHP->phpcassa->Cassandra)
- Connect Parse with external database?
- Does using NoSQL make sense for a non-distributed
- How to query nested keys in Riak?
Sometimes multiple-databases plan is a good option, like a database per user or even a database per user-feature. Take a look at this conversation on CouchDB mailing list.
No.
That's right. The SQL table defines column header (name and type) - that are the JSON property names of the doc.
So, all docs (rows) with the same properties (a so called "schema") are the equivalent of your SQL table. You can have as much different schemata in one database as you want (visit json-schema.org for some inspiration).
How to request them separately? Create CouchDB views! You can get all/some "rows" of your tabular data (docs with the same schema) with one request as you know it from SQL.
To write such views easily the property
type
is very common for CouchDB docs. Your known name from a SQL table can be your type likedoc.type: "animal"
Your view names will be maybe
animalByName
oranimalByWeight
. Depends on your needs.The answer to this question seems to be surprisingly under-documented. While @llabball clearly gave a decent answer, I don't think that views are always the way to go.
As you can read here in the section When not to use map/reduce, Nolan explains that for simpler applications, the key is to abuse
_ids
, and leverage the power ofallDocs()
.In other words, if you had two separate types (say artists, and albums), then you could prefix the id of each type to obtain an easily searchable data set. For example
_id: 'artist_name'
&_id: 'album_title'
, would allow you to easily retrieve artists in name order.Laying out the data this way will result in better performance due to not requiring extra indexes, and less code. Clearly however, if your data requirements are more complex, then views are the way to go.