en-US/Ldbc.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems xmlns="http://msh" schema="maml">
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Get-LiteData</command:name>
<maml:description>
<maml:para>Gets data from the collection.</maml:para>
</maml:description>
<command:verb>Get</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet gets data specified by the parameters from the collection.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Get-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Where</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>As</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>First</maml:name>
<command:parameterValue required="true">Int32</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Include</maml:name>
<command:parameterValue required="true">String[]</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Last</maml:name>
<command:parameterValue required="true">Int32</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Order</maml:name>
<command:parameterValue required="true">Int32</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>OrderBy</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Select</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Skip</maml:name>
<command:parameterValue required="true">Int32</command:parameterValue>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Get-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>As</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Include</maml:name>
<command:parameterValue required="true">String[]</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Select</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Get-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Where</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>Count</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Where</maml:name>
<maml:description>
<maml:para>Specifies the filter expression.</maml:para>
<maml:para>The expression may be string, Ldbc.Expression, or LiteDB.BsonExpression.
 
An expression with named parameters or indexed arguments is followed by a parameter dictionary or argument values.
 
Separate expressions and arguments with commas. Parenthesis may be used but they are not required. Array notation @() may be used for multiline expressions.
 
Examples:
 
    &apos;.. @x .. @y ..&apos;, @{x = 40; y = 80}
 
    (&apos;.. @0 .. @1 ..&apos;, 40, 80)
 
    @(
        &apos;.. @0 .. @1 ..&apos;
        &lt;argument 0&gt;
        &lt;argument 1&gt;
    )</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>As</maml:name>
<maml:description>
<maml:para>Specifies the type of output objects. The argument is either a type or a type name or an alias (&quot;PS&quot;, &quot;Default&quot;). &quot;PS&quot; is for PSCustomObject. &quot;Default&quot; is for Ldbc.Dictionary, the PowerShell friendly wrapper of BsonDocument.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<maml:description>
<maml:para>Tells to find a document by the specified id. The cmdlet outputs the found document, if any.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>Count</maml:name>
<maml:description>
<maml:para>Tells to count the documents and return the number.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>First</maml:name>
<maml:description>
<maml:para>Specifies the number of first documents to be returned. Non positive values are ignored.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Include</maml:name>
<maml:description>
<maml:para>Specifies expressions for loading references.
 
Example: Given $order is the collection of [Order] with references to single [Customer] and multiple [Product]
 
    Get-LiteData $orders -As Order -Include &apos;Customer&apos;, &apos;Products[*]&apos;</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Last</maml:name>
<maml:description>
<maml:para>Specifies the number of last documents to be returned. Non positive values are ignored.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Order</maml:name>
<maml:description>
<maml:para>Specifies the sort direction, 1: ascending, -1: descending.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>OrderBy</maml:name>
<maml:description>
<maml:para>Specifies the sort expression.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Select</maml:name>
<maml:description>
<maml:para>Specifies the projections applied to results. Note that _id is not automatically included.
 
Examples:
    Selected field subset: {_id, name, age}
    Renamed or calculated: {Item: name, Total: $.count * $.price}</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Skip</maml:name>
<maml:description>
<maml:para>Specifies the number of documents to skip from the beginning or from the end if Last is specified. Non positive values are ignored.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>object, PSCustomObject, Ldbc.Dictionary</maml:name>
</dev:type>
<maml:description>
<maml:para>Output types depend on the parameter As.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    $test = Get-LiteCollection test
 
    # add two documents
    $data = @{_id = 1; Name = &apos;John&apos;}, @{_id = 2; Name = &apos;Mary&apos;}
    $data | Add-LiteData $test
 
    # query data using filter with parameters
    Get-LiteData $test (&apos;Name = @Name&apos;, @{Name = &apos;Mary&apos;})
 
    # query strongly typed data
    class MyData {[int]$Id; [string]$Name}
    Get-LiteData $test -As MyData
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Add-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Set-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Remove-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Update-LiteData</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Add-LiteData</command:name>
<maml:description>
<maml:para>Inserts input documents to the collection.</maml:para>
</maml:description>
<command:verb>Add</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet inserts input documents to the collection. One document may be specified as the parameter. Use the pipeline for several input documents.
 
For several documents or calls consider using a transaction for better performance.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Add-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>InputObject</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" pipelineInput="true (ByValue)" position="1" >
<maml:name>InputObject</maml:name>
<maml:description>
<maml:para>The input document, see INPUTS.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
<maml:description>
<maml:para>Tells to output inserted document ids.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:inputTypes>
<command:inputType>
<dev:type>
<maml:name>PSCustomObject, IDictionary, class</maml:name>
</dev:type>
<maml:description>
<maml:para>Document-like objects.
 
Dictionaries include Hashtable, Ldbc.Dictionary, LiteDB.BsonDocument, etc.
 
PowerShell classes and .NET complex objects are serialized using LiteDB mappings.</maml:para>
</maml:description>
</command:inputType>
</command:inputTypes>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>none</maml:name>
</dev:type>
<maml:description>
<maml:para>The cmdlet outputs nothing without the switch Result.</maml:para>
</maml:description>
</command:returnValue>
<command:returnValue>
<dev:type>
<maml:name>object</maml:name>
</dev:type>
<maml:description>
<maml:para>Inserted document ids, if the switch Result is used.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    # get the collection, add some hashtable
    # (use [ordered] to keep the key order)
    $log = Get-LiteCollection log
    Add-LiteData $log ([ordered]@{
        Message = &apos;Doing X...&apos;
        Type = &apos;Info&apos;
        Time = Get-Date
    })
 
    # get data
    Get-LiteData $log
}</dev:code>
</command:example>
<command:example>
<maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    # get processes as PSCustomObject with some properties
    $data = Get-Process | Select-Object @{n=&apos;_id&apos;; e={$_.Id}}, ProcessName, WorkingSet64
 
    # get the collection and add data
    $test = Get-LiteCollection test
    $data | Add-LiteData $test
 
    # get data
    Get-LiteData $test
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Get-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Set-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Remove-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Update-LiteData</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Set-LiteData</command:name>
<maml:description>
<maml:para>Replaces old documents in the collection with new input documents.</maml:para>
</maml:description>
<command:verb>Set</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet replaces old documents in the collection with new input documents. One document may be specified as the parameter. Use the pipeline for several input documents.
 
If the old document does not exist then the new is inserted if the switch Add is used. Otherwise the new document is ignored.
 
For several documents or calls consider using a transaction for better performance.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Set-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>InputObject</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Add</maml:name>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" pipelineInput="true (ByValue)" position="1" >
<maml:name>InputObject</maml:name>
<maml:description>
<maml:para>The input document, see INPUTS.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Add</maml:name>
<maml:description>
<maml:para>Tells to insert the new document if the old does not exist.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
<maml:description>
<maml:para>Tells to output the number of replaced documents (Add is not used) or the number of added documents (Add is used).</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:inputTypes>
<command:inputType>
<dev:type>
<maml:name>PSCustomObject, IDictionary, class</maml:name>
</dev:type>
<maml:description>
<maml:para>Document-like objects.
 
Dictionaries include Hashtable, Ldbc.Dictionary, LiteDB.BsonDocument, etc.
 
PowerShell classes and .NET complex objects are serialized using LiteDB mappings.</maml:para>
</maml:description>
</command:inputType>
</command:inputTypes>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>none</maml:name>
</dev:type>
<maml:description>
<maml:para>The cmdlet outputs nothing without the switch Result.</maml:para>
</maml:description>
</command:returnValue>
<command:returnValue>
<dev:type>
<maml:name>int</maml:name>
</dev:type>
<maml:description>
<maml:para>If the switch Result is used, the number of replaced documents (Add is not used) or the number of added documents (Add is used).</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    $test = Get-LiteCollection test
 
    # 1 (added)
    Set-LiteData $test @{_id = 1; name = &apos;John&apos;} -Add -Result
    Get-LiteData $test
 
    # 1 (updated)
    Set-LiteData $test @{_id = 1; name = &apos;Mary&apos;} -Result
    Get-LiteData $test
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Add-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Get-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Remove-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Update-LiteData</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Test-LiteData</command:name>
<maml:description>
<maml:para>Gets true if the query matches any document.</maml:para>
</maml:description>
<command:verb>Test</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet gets true if the specified query matches any document. This method does not deserialize data.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Test-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Where</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Test-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Where</maml:name>
<maml:description>
<maml:para>Specifies the filter expression.</maml:para>
<maml:para>The expression may be string, Ldbc.Expression, or LiteDB.BsonExpression.
 
An expression with named parameters or indexed arguments is followed by a parameter dictionary or argument values.
 
Separate expressions and arguments with commas. Parenthesis may be used but they are not required. Array notation @() may be used for multiline expressions.
 
Examples:
 
    &apos;.. @x .. @y ..&apos;, @{x = 40; y = 80}
 
    (&apos;.. @0 .. @1 ..&apos;, 40, 80)
 
    @(
        &apos;.. @0 .. @1 ..&apos;
        &lt;argument 0&gt;
        &lt;argument 1&gt;
    )</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<maml:description>
<maml:para>Specifies the document id.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>bool</maml:name>
</dev:type>
<maml:description>
<maml:para>True if the query matches any document.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Remove-LiteData</command:name>
<maml:description>
<maml:para>Removes data from the collection.</maml:para>
</maml:description>
<command:verb>Remove</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet removes documents specified by the filter from the collection.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Remove-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Where</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Remove-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Where</maml:name>
<maml:description>
<maml:para>Specifies the filter expression.</maml:para>
<maml:para>The expression may be string, Ldbc.Expression, or LiteDB.BsonExpression.
 
An expression with named parameters or indexed arguments is followed by a parameter dictionary or argument values.
 
Separate expressions and arguments with commas. Parenthesis may be used but they are not required. Array notation @() may be used for multiline expressions.
 
Examples:
 
    &apos;.. @x .. @y ..&apos;, @{x = 40; y = 80}
 
    (&apos;.. @0 .. @1 ..&apos;, 40, 80)
 
    @(
        &apos;.. @0 .. @1 ..&apos;
        &lt;argument 0&gt;
        &lt;argument 1&gt;
    )</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<maml:description>
<maml:para>Tells to remove one document by the specified id.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
<maml:description>
<maml:para>Tells to output the number of removed documents.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    $test = Get-LiteCollection test
 
    # add two documents
    $data = @{_id = 1; Name = &apos;John&apos;}, @{_id = 2; Name = &apos;Mary&apos;}
    $data | Add-LiteData $test
 
    # remove data using filter with parameters
    Remove-LiteData $test (&apos;Name = @Name&apos;, @{Name = &apos;Mary&apos;})
    Get-LiteData $test
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Add-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Get-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Set-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Update-LiteData</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Update-LiteData</command:name>
<maml:description>
<maml:para>Updates documents in the collection.</maml:para>
</maml:description>
<command:verb>Update</command:verb>
<command:noun>LiteData</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet updates the documents specified by the filter expression using the update expression.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Update-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Where</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="2" >
<maml:name>Update</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Update-LiteData</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">ILiteCollection`1</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="2" >
<maml:name>Update</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The collection instance. Use Get-LiteCollection in order to get it from a database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Where</maml:name>
<maml:description>
<maml:para>Specifies the filter expression.</maml:para>
<maml:para>The expression may be string, Ldbc.Expression, or LiteDB.BsonExpression.
 
An expression with named parameters or indexed arguments is followed by a parameter dictionary or argument values.
 
Separate expressions and arguments with commas. Parenthesis may be used but they are not required. Array notation @() may be used for multiline expressions.
 
Examples:
 
    &apos;.. @x .. @y ..&apos;, @{x = 40; y = 80}
 
    (&apos;.. @0 .. @1 ..&apos;, 40, 80)
 
    @(
        &apos;.. @0 .. @1 ..&apos;
        &lt;argument 0&gt;
        &lt;argument 1&gt;
    )</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="2" >
<maml:name>Update</maml:name>
<maml:description>
<maml:para>Specifies the transformation expression.</maml:para>
<maml:para>The expression may be string, Ldbc.Expression, or LiteDB.BsonExpression.
 
An expression with named parameters or indexed arguments is followed by a parameter dictionary or argument values.
 
Separate expressions and arguments with commas. Parenthesis may be used but they are not required. Array notation @() may be used for multiline expressions.
 
Examples:
 
    &apos;.. @x .. @y ..&apos;, @{x = 40; y = 80}
 
    (&apos;.. @0 .. @1 ..&apos;, 40, 80)
 
    @(
        &apos;.. @0 .. @1 ..&apos;
        &lt;argument 0&gt;
        &lt;argument 1&gt;
    )</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="named" >
<maml:name>ById</maml:name>
<maml:description>
<maml:para>Specifies the document id.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Result</maml:name>
<maml:description>
<maml:para>Tells to output the number of updated documents.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>[int]</maml:name>
</dev:type>
<maml:description>
<maml:para>The number of updated documents.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    $test = Get-LiteCollection test
 
    # add data
    Add-LiteData $test @{_id = 1; Name = &apos;John&apos;}
 
    # change Name using filter and update with parameters
    $filter = &apos;Name = @Name&apos;, @{Name = &apos;John&apos;}
    $update = &apos;{Name : @Name}&apos;, @{Name = &apos;Mary&apos;}
    Update-LiteData $test $filter $update
 
    Get-LiteData $test
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Add-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Get-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Set-LiteData</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Remove-LiteData</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Invoke-LiteCommand</command:name>
<maml:description>
<maml:para>Invokes the LiteDB SQL command and gets results.</maml:para>
</maml:description>
<command:verb>Invoke</command:verb>
<command:noun>LiteCommand</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet invokes the command with optional parameters (if the command supports parameters).</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Invoke-LiteCommand</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Command</maml:name>
<command:parameterValue required="true">String</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Parameters</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>As</maml:name>
<command:parameterValue required="true">Object</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Collection</maml:name>
<command:parameterValue required="true">PSReference</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<command:parameterValue required="true">ILiteDatabase</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Quiet</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Command</maml:name>
<maml:description>
<maml:para>Specifies the LiteDB SQL command.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Parameters</maml:name>
<maml:description>
<maml:para>Specifies the expression named parameters (IDictionary) or indexed arguments (IList or object).</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>As</maml:name>
<maml:description>
<maml:para>Specifies the type of output objects. The argument is either a type or a type name or an alias (&quot;PS&quot;, &quot;Default&quot;). &quot;PS&quot; is for PSCustomObject. &quot;Default&quot; is for Ldbc.Dictionary, the PowerShell friendly wrapper of BsonDocument.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Collection</maml:name>
<maml:description>
<maml:para>The output [ref] of the command collection name.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<maml:description>
<maml:para>The database instance. If it is omitted then the variable $Database is expected. Use New-LiteDatabase or Use-LiteDatabase in order to get the database instance.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Quiet</maml:name>
<maml:description>
<maml:para>Tells to omit the command output.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>object, PSCustomObject, Ldbc.Dictionary</maml:name>
</dev:type>
<maml:description>
<maml:para>Output types depend on the parameter As.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>See README examples.</maml:title>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>LiteDB SQL</maml:linkText>
<maml:uri>https://www.litedb.org/api/</maml:uri>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>New-LiteDatabase</command:name>
<maml:description>
<maml:para>Opens new or existing database and creates the database instance.</maml:para>
</maml:description>
<command:verb>New</command:verb>
<command:noun>LiteDatabase</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet opens new or existing database and returns the database instance for further operations. The returned instance must be closed by Dispose(). Consider using Use-LiteDatabase instead for more automatic disposal.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>New-LiteDatabase</maml:name>
<command:parameter required="false" position="0" >
<maml:name>ConnectionString</maml:name>
<command:parameterValue required="true">ConnectionString</command:parameterValue>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>New-LiteDatabase</maml:name>
<command:parameter required="false" position="0" >
<maml:name>Stream</maml:name>
<command:parameterValue required="true">Stream</command:parameterValue>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="false" position="0" >
<maml:name>ConnectionString</maml:name>
<maml:description>
<maml:para>Specifies the LiteDB connection string.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="0" >
<maml:name>Stream</maml:name>
<maml:description>
<maml:para>Specifies the stream for reading and writing as the database.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>LiteDB.LiteDatabase</maml:name>
</dev:type>
<maml:description>
<maml:para>The database instance. Must be disposed after use.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>$Database = New-LiteDatabase :memory:
try {
    # working with $Database...
    $Database
}
finally {
    $Database.Dispose()
}</dev:code>
<dev:remarks>
<maml:para>Classic try/finally pattern for disposing objects.</maml:para>
</dev:remarks>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>Use-LiteDatabase</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Use-LiteDatabase</command:name>
<maml:description>
<maml:para>Opens the database, invokes the script, and closes the database.</maml:para>
</maml:description>
<command:verb>Use</command:verb>
<command:noun>LiteDatabase</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet opens new or existing database, creates the variable $Database for it, and invokes the specified script. When the script completes or fails the database is automatically disposed.
 
Use the switch Transaction in order to invoke multiple changes in a transaction. Note that using transactions may significantly improve performance as well.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Use-LiteDatabase</maml:name>
<command:parameter required="false" position="0" >
<maml:name>ConnectionString</maml:name>
<command:parameterValue required="true">ConnectionString</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Script</maml:name>
<command:parameterValue required="true">ScriptBlock</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Transaction</maml:name>
</command:parameter>
</command:syntaxItem>
<command:syntaxItem>
<maml:name>Use-LiteDatabase</maml:name>
<command:parameter required="false" position="0" >
<maml:name>Stream</maml:name>
<command:parameterValue required="true">Stream</command:parameterValue>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Script</maml:name>
<command:parameterValue required="true">ScriptBlock</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Transaction</maml:name>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="false" position="0" >
<maml:name>ConnectionString</maml:name>
<maml:description>
<maml:para>Specifies the LiteDB connection string.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="0" >
<maml:name>Stream</maml:name>
<maml:description>
<maml:para>Specifies the stream for reading and writing as the database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="true" position="1" >
<maml:name>Script</maml:name>
<maml:description>
<maml:para>The script operating on the database.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Transaction</maml:name>
<maml:description>
<maml:para>Tells to use a transaction. If the script completes the transaction is committed. If the script terminates due to an error the transaction is aborted.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
</dev:type>
<maml:description>
<maml:para>Output of the script.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    # working with $Database...
    $Database
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>New-LiteDatabase</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Use-LiteTransaction</command:name>
<maml:description>
<maml:para>Invokes the script operating on data with a transaction.</maml:para>
</maml:description>
<command:verb>Use</command:verb>
<command:noun>LiteTransaction</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet creates a new transaction or continues using the existing in the same thread. Then it invokes the specified script. The new transaction is automatically committed or aborted depending on the script completion or failure.
 
If you use a single transaction then `Use-LiteDatabase -Transaction` may do the same trick as using this cmdlet.
 
NOTE: Using a transaction for multiple changes may improve overall performance.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Use-LiteTransaction</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Script</maml:name>
<command:parameterValue required="true">ScriptBlock</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<command:parameterValue required="true">ILiteDatabase</command:parameterValue>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Script</maml:name>
<maml:description>
<maml:para>The script operating on data in the transaction.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<maml:description>
<maml:para>The database instance. If it is omitted then the variable $Database is expected. Use New-LiteDatabase or Use-LiteDatabase in order to get the database instance.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
</dev:type>
<maml:description>
<maml:para>Output of the script.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    Use-LiteTransaction {
        # working with $Database in transaction...
        $Database
    }
}
 
# Or you may tell to use transaction like this:
# Use-LiteDatabase :memory: -Transaction {...}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>New-LiteDatabase</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Use-LiteDatabase</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Get-LiteCollection</command:name>
<maml:description>
<maml:para>Gets the collection instance.</maml:para>
</maml:description>
<command:verb>Get</command:verb>
<command:noun>LiteCollection</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet gets the collection instance by its name from the specified or default database.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Get-LiteCollection</maml:name>
<command:parameter required="true" position="0" >
<maml:name>CollectionName</maml:name>
<command:parameterValue required="true">String</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>AutoId</maml:name>
<command:parameterValue required="true">BsonAutoId</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<command:parameterValue required="true">ILiteDatabase</command:parameterValue>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>CollectionName</maml:name>
<maml:description>
<maml:para>The collection name, case insensitive.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>AutoId</maml:name>
<maml:description>
<maml:para>The automatic identifier data type.</maml:para>
<maml:para>Values : Int32, Int64, ObjectId, Guid</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="named" >
<maml:name>Database</maml:name>
<maml:description>
<maml:para>The database instance. If it is omitted then the variable $Database is expected. Use New-LiteDatabase or Use-LiteDatabase in order to get the database instance.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:returnValues>
<command:returnValue>
<dev:type>
<maml:name>LiteDB.ILiteCollection[LiteDB.BsonDocument]</maml:name>
</dev:type>
<maml:description>
<maml:para>The collection instance.</maml:para>
</maml:description>
</command:returnValue>
</command:returnValues>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code>Use-LiteDatabase :memory: {
    # get the collection
    $MyCollection = Get-LiteCollection MyCollection
 
    # use it...
    $MyCollection
}</dev:code>
</command:example>
</command:examples>
<maml:relatedLinks>
<maml:navigationLink>
<maml:linkText>New-LiteDatabase</maml:linkText>
</maml:navigationLink>
<maml:navigationLink>
<maml:linkText>Use-LiteDatabase</maml:linkText>
</maml:navigationLink>
</maml:relatedLinks>
</command:command>
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>Register-LiteType</command:name>
<maml:description>
<maml:para>Registers custom type serialization.</maml:para>
</maml:description>
<command:verb>Register</command:verb>
<command:noun>LiteType</command:noun>
</command:details>
<maml:description>
<maml:para>The cmdlet allows custom serialization definition using script blocks.</maml:para>
</maml:description>
<command:syntax>
<command:syntaxItem>
<maml:name>Register-LiteType</maml:name>
<command:parameter required="true" position="0" >
<maml:name>Type</maml:name>
<command:parameterValue required="true">Type</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Serialize</maml:name>
<command:parameterValue required="true">ScriptBlock</command:parameterValue>
</command:parameter>
<command:parameter required="false" position="2" >
<maml:name>Deserialize</maml:name>
<command:parameterValue required="true">ScriptBlock</command:parameterValue>
</command:parameter>
</command:syntaxItem>
</command:syntax>
<command:parameters>
<command:parameter required="true" position="0" >
<maml:name>Type</maml:name>
<maml:description>
<maml:para>Specifies the custom serialized type.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="1" >
<maml:name>Serialize</maml:name>
<maml:description>
<maml:para>The script which converts the live object $_ to the object to be serialized.</maml:para>
</maml:description>
</command:parameter>
<command:parameter required="false" position="2" >
<maml:name>Deserialize</maml:name>
<maml:description>
<maml:para>The script which converts the deserialized object $_ to the live object.</maml:para>
</maml:description>
</command:parameter>
</command:parameters>
<command:examples>
<command:example>
<maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
<dev:code># save Version as string
Register-LiteType ([Version]) {
    $_.ToString()
} {
    [version]$_
}
 
# test
$data1 = [version]&apos;1.2.3&apos;
$saved = [LiteDB.BsonMapper]::Global.Serialize([version], $data1)
$data2 = [LiteDB.BsonMapper]::Global.Deserialize([version], $saved)
$data2 -eq $data1</dev:code>
</command:example>
</command:examples>
</command:command>
</helpItems>