Rulesets
db.rulesets.get returns read-only snapshots for rulesets. You can keep chaining filters or use normal array methods.
These examples use a small fixture that resets for every run. Your application still uses its own Realm database.
all
Returns all matching rulesets in a regular array.
return db.rulesets.get
.all()
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))toArray
Returns all matching rulesets in a regular array.
return db.rulesets.get
.toArray()
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))first
Returns the first matching ruleset, or undefined.
return db.rulesets.get
.first()?.Namecount
Counts all matching rulesets, even when a limit is set.
return db.rulesets.get
.count()limit
Limits how many rulesets elements are accessed.
return db.rulesets.get
.limit(1)
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))sortedBy
Sorts rulesets by a database field.
return db.rulesets.get
.sortedBy('Name')
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))autoEdit
Starts an edit session that buffers changes to matching rulesets. Commit or roll them back when you are done.
const session = db.rulesets.get
.limit(1)
.autoEdit()
const length = session.length
session.rollback()
return lengthcommit
Saves the pending changes.
const session = db.rulesets.get
.limit(1)
.autoEdit()
const length = session.length
session.commit()
return lengthrollback
Discards the pending changes.
const session = db.rulesets.get
.limit(1)
.autoEdit()
const length = session.length
session.rollback()
return lengthwrite.delete
Deletes every matching ruleset in one transaction.
return db.rulesets.get
.limit(1)
.write.delete()write.update
Applies a typed patch to every matching ruleset.
return db.rulesets.get
.limit(1)
.write.update({ Available: true })byAvailable
Finds rulesets where available matches the supplied value. You can chain more filters on the result.
return db.rulesets.get
.byAvailable(true)
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))byName
Finds rulesets where name matches the supplied value. You can chain more filters on the result.
return db.rulesets.get
.byName('osu!')
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))byNameContains
Finds rulesets where name contains the supplied value. You can chain more filters on the result.
return db.rulesets.get
.byNameContains('taiko')
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))byOnlineId
Finds rulesets where online ID matches the supplied value. You can chain more filters on the result.
return db.rulesets.get
.byOnlineId(0)
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))byShortName
Finds rulesets where short name matches the supplied value. You can chain more filters on the result.
return db.rulesets.get
.byShortName('osu')
.map(item => ({
shortName: item.ShortName,
name: item.Name,
}))