Create or Modify Counters
-
Use the
countersFor.increment
method to create a new Counter or modify an existing Counter's value. -
If the Counter exists,
increment
will add the specified number to the Counter's current value.
If the Counter doesn't exist,increment
will create it and set its initial value. -
For all other
countersFor
methods see this Overview. -
In this page:
increment
usage
Flow:
- Open a session.
-
Create an instance of
countersFor
.- Either pass
countersFor
an explicit document ID, -or- - Pass it an entity tracked by the session, e.g. a document object returned from
session.query
or fromsession.load
.
- Either pass
- Call
countersFor.increment
. - Call
session.saveChanges
for the changes to take effect.
Note:
- Modifying a Counter using
increment
only takes effect whensession.saveChanges()
is executed. - To decrease a Counter's value, pass the method a negative number to the
increment
method.
Example
// 1. Open a session
try (IDocumentSession session = docStore.openSession()) {
// 2. pass CountersFor's constructor a document ID
ISessionDocumentCounters documentCounters = session.countersFor("products/1-C");
// 3. Use `countersFor.increment`
documentCounters.increment("productLikes"); // Increase "productLikes" by 1, or create it with a value of 1
documentCounters.increment("productDislikes", 1); // Increase "productDislikes" by 1, or create it with a value of 1
documentCounters.increment("productPageViews", 15); // Increase "productPageViews" by 15, or create it with a value of 15
documentCounters.increment("daysLeftForSale", -10); // Decrease "daysLeftForSale" by 10, or create it with a value of -10
// 4. Save changes to the session
session.saveChanges();
}
Syntax
void increment(String counterName);
void increment(String id, String name, long delta);
Parameter | Type | Description |
---|---|---|
counterName |
String | Counter's name |
incrementValue |
Long | Increase Counter by this value. Default value is 1. For a new Counter, this number will be its initial value. |