| # Getting Started |
| |
| The Mapper is provided as part of the driver package. |
| |
| ```javascript |
| const cassandra = require('cassandra-driver'); |
| const Client = cassandra.Client; |
| const Mapper = cassandra.mapping.Mapper; |
| |
| const client = new Client({ contactPoints, localDataCenter, keyspace }); |
| ``` |
| |
| Create a `Mapper` instance and reuse it across your application. You can define how your model properties are mapped |
| to table columns in the [MappingOptions](../defining-mappings/). |
| |
| ```javascript |
| const mapper = new Mapper(client, { |
| models: { 'Video': { tables: ['videos'] } } |
| }); |
| ``` |
| |
| A `ModelMapper` contains all the logic to retrieve and save objects from and to the database. |
| |
| ```javascript |
| const videoMapper = mapper.forModel('Video'); |
| ``` |
| |
| Internally, the `Mapper` contains a single `ModelMapper` instance per model in your application, you can call |
| `mapper.forModel(name)` each time you need a model mapper with no additional cost. |
| |
| To retrieve a single object, use `get()` method of the `ModelMapper`. |
| |
| ```javascript |
| const video = await videoMapper.get({ videoId: myVideoId }); |
| ``` |
| |
| Use `find()` method to filter by one or more primary keys. |
| |
| ```javascript |
| const userVideos = await videoMapper.find({ userId: myUserId }); |
| ``` |
| |
| Insert an object using `insert()` method. |
| |
| ```javascript |
| await videoMapper.insert({ videoId, userId, addedDate, name }); |
| ``` |
| |
| Update an object using `update()` method. |
| |
| ```javascript |
| await videoMapper.update({ videoId, userId, addedDate, name: newName }); |
| ``` |
| |
| Delete an object using `remove()` method. |
| |
| ```javascript |
| await videoMapper.remove({ videoId }); |
| ``` |
| |
| Keep in mind that both `Mapper` and `Client` instances are designed to be long lived. If you don't want to maintain |
| both instances on separate fields, you can access the `Client` instance using the `Mapper` property `client`. For |
| example, you can shutdown your `Client` before exiting your application by calling: |
| |
| ```javascript |
| mapper.client.shutdown(); |
| ``` |
| |
| You can look at the [Queries documentation](../queries/) for more examples of retrieving and saving |
| objects and you read the [Mappings documentation](../defining-mappings/) to understand how |
| tables and columns are mapped into properties. |
| |
| *Note that throughout the Mapper documentation the [killrvideo schema][killrvideo] is used.* |
| |
| [killrvideo]: https://github.com/pmcfadin/killrvideo-sample-schema |