# 
        Virtual Document
    
See Documents Section for further information on documents.
        # 
        useVirtual
    
If document is not found in the database, it will return undefined.
import { useRebar } from '@Server/index.js';
const Rebar = useRebar();
interface CustomDocument {
    _id: string;
    test1: string;
    test2: string;
}
const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>('663ce39eb270106cf02fb7e3', 'SomeCollection');
        # 
        get
    
Get all data for a document
async function someFunction() {
    const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>(
        '663ce39eb270106cf02fb7e3',
        'SomeCollection',
    );
    if (!virtualDocument) {
        return;
    }
    const data = virtualDocument.get();
    console.log(data);
}
        # 
        getField
    
Get a specific field from a document
async function someFunction() {
    const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>(
        '663ce39eb270106cf02fb7e3',
        'SomeCollection',
    );
    if (!virtualDocument) {
        return;
    }
    const test1 = virtualDocument.getField('test1');
    console.log(test1);
}
        # 
        set
    
Set a specific field for the document, and save to the database
async function someFunction() {
    const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>(
        '663ce39eb270106cf02fb7e3',
        'SomeCollection',
    );
    if (!virtualDocument) {
        return;
    }
    await virtualDocument.set('test1', 'hi');
}
        # 
        setBulk
    
Set multiple fields for the document, and save to the database
async function someFunction() {
    const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>(
        '663ce39eb270106cf02fb7e3',
        'SomeCollection',
    );
    if (!virtualDocument) {
        return;
    }
    await virtualDocument.setBulk({ test1: 'hi', test2: 'hi' });
}
        # 
        refresh
    
Refresh the document from the database
async function someFunction() {
    const virtualDocument = await Rebar.document.virtual.useVirtual<CustomDocument>(
        '663ce39eb270106cf02fb7e3',
        'SomeCollection',
    );
    if (!virtualDocument) {
        return;
    }
    await virtualDocument.refresh();
}
        # 
        permissions
    
If you want to modify permissions for a document, you can use the permissions property.
It is available only for Accounts and Characters collections.
Click the link above(heading) to see more details on how to use this property.
        # 
        groups
    
If you want to modify groups for a document, you can use the groups property.
It is available only for Accounts and Characters collections.
Click the link above(heading) to see more details on how to use this property.