[フレーム]
Skip to main content

Object-Data-Relational-Mapping

Like mongoose, RxDB has ORM-capabilities which can be used to add specific behavior to documents and collections.

statics​

Statics are defined collection-wide and can be called on the collection.

Add statics to a collection​

To add static functions, pass a statics-object when you create your collection. The object contains functions, mapped to their function-names.

const heroes = await myDatabase.addCollections({
 heroes: {
 schema: mySchema,
 statics: {
 scream: function(){
 return 'AAAH!!';
 }
 }
 }
});

console.log(heroes.scream());
// 'AAAH!!'

You can also use the this-keyword which resolves to the collection:

const heroes = await myDatabase.addCollections({
 heroes: {
 schema: mySchema,
 statics: {
 whoAmI: function(){
 return this.name;
 }
 }
 }
});
console.log(heroes.whoAmI());
// 'heroes'

instance-methods​

Instance-methods are defined collection-wide. They can be called on the RxDocuments of the collection.

Add instance-methods to a collection​

const heroes = await myDatabase.addCollections({
 heroes: {
 schema: mySchema,
 methods: {
 scream: function(){
 return 'AAAH!!';
 }
 }
 }
});
const doc = await heroes.findOne().exec();
console.log(doc.scream());
// 'AAAH!!'

Here you can also use the this-keyword:

const heroes = await myDatabase.addCollections({
 heroes: {
 schema: mySchema,
 methods: {
 whoAmI: function(){
 return 'I am ' + this.name + '!!';
 }
 }
 }
});
await heroes.insert({
 name: 'Skeletor'
});
const doc = await heroes.findOne().exec();
console.log(doc.whoAmI());
// 'I am Skeletor!!'

attachment-methods​

Attachment-methods are defined collection-wide. They can be called on the RxAttachments of the RxDocuments of the collection.

const heroes = await myDatabase.addCollections({
 heroes: {
 schema: mySchema,
 attachments: {
 scream: function(){
 return 'AAAH!!';
 }
 }
 }
});
const doc = await heroes.findOne().exec();
const attachment = await doc.putAttachment({
 id: 'cat.txt',
 data: 'meow I am a kitty',
 type: 'text/plain'
});
console.log(attachment.scream());
// 'AAAH!!'
RxDB

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /