Class MongoDBDataStore
  
  Implements MongoDB general data store that supports CRUD operations.
This class IS thread-safe load/save/delete operations
 
  
  
    Inheritance
    System.Object
    
    
    
    MongoDBDataStore
   
  
    Implements
    
    
    
    
    
    
    
    System.IDisposable
    
    
    
   
  
    Inherited Members
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      System.Object.Equals(System.Object)
    
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetHashCode()
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
    
      System.Object.ToString()
    
   
  
  Assembly: NFX.MongoDB.dll
  Syntax
  
    public class MongoDBDataStore : MongoDBDataStoreBase, ICRUDDataStoreImplementation, ICRUDDataStore, ICRUDOperations, ICRUDTransactionOperations, IDataStoreImplementation, IDataStore, IApplicationComponent, IDisposable, IConfigurable, IInstrumentable, IExternallyParameterized
   
  Constructors
  
  
  
  
  MongoDBDataStore()
  
  
  Declaration
  
    public MongoDBDataStore()
   
  
  
  
  MongoDBDataStore(String, String)
  
  
  Declaration
  
    public MongoDBDataStore(string connectString, string dbName)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.String | 
        connectString | 
         | 
      
      
        | System.String | 
        dbName | 
         | 
      
    
  
  Fields
  
  
  
  SCRIPT_FILE_SUFFIX
  
  
  Declaration
  
    public const string SCRIPT_FILE_SUFFIX = ".mon.json"
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  Properties
  
  
  
  
  Converter
  
  
  Declaration
  
    public RowConverter Converter { get; }
   
  Property Value
  
  
  
  
  QueryResolver
  
  
  Declaration
  
    public ICRUDQueryResolver QueryResolver { get; }
   
  Property Value
  
  
  
  
  ScriptFileSuffix
  
  
  Declaration
  
    public virtual string ScriptFileSuffix { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  
  
  
  StoreType
  
  
  Declaration
  
    public virtual CRUDDataStoreType StoreType { get; }
   
  Property Value
  
  
  
  
  SupportsTransactions
  
  
  Declaration
  
    public virtual bool SupportsTransactions { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  SupportsTrueAsynchrony
  
  
  Declaration
  
    public virtual bool SupportsTrueAsynchrony { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Methods
  
  
  
  
  BeginTransaction(IsolationLevel, TransactionDisposeBehavior)
  
  
  Declaration
  
    public virtual CRUDTransaction BeginTransaction(IsolationLevel iso = IsolationLevel.ReadCommitted, TransactionDisposeBehavior behavior = TransactionDisposeBehavior.CommitOnDispose)
   
  Parameters
  
  Returns
  
  
  
  
  BeginTransactionAsync(IsolationLevel, TransactionDisposeBehavior)
  
  
  Declaration
  
    public virtual Task<CRUDTransaction> BeginTransactionAsync(IsolationLevel iso = IsolationLevel.ReadCommitted, TransactionDisposeBehavior behavior = TransactionDisposeBehavior.CommitOnDispose)
   
  Parameters
  
  Returns
  
  
  
  
  CheckCRUDResult(CRUDResult, String, String)
  
  
  Declaration
  
    public static void CheckCRUDResult(CRUDResult result, string schema, string operation)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | CRUDResult | 
        result | 
         | 
      
      
        | System.String | 
        schema | 
         | 
      
      
        | System.String | 
        operation | 
         | 
      
    
  
  
  
  
  
  
  
  Declaration
  
    public override void Configure(IConfigSectionNode node)
   
  Parameters
  
  Overrides
  
  
  
  
  Delete(Row, IDataStoreKey)
  
  
  Declaration
  
    public int Delete(Row row, IDataStoreKey key = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  DeleteAsync(Row, IDataStoreKey)
  
  
  Declaration
  
    public virtual Task<int> DeleteAsync(Row row, IDataStoreKey key = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  
  
  
  DoDelete(Database, Row, IDataStoreKey)
  
  
  Declaration
  
    protected virtual int DoDelete(Database db, Row row, IDataStoreKey key)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  DoInsert(Database, Row, FieldFilterFunc)
  
  
  Declaration
  
    protected virtual int DoInsert(Database db, Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  DoUpdate(Database, Row, IDataStoreKey, FieldFilterFunc)
  
  
  Declaration
  
    protected virtual int DoUpdate(Database db, Row row, IDataStoreKey key, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  DoUpsert(Database, Row, FieldFilterFunc)
  
  
  Declaration
  
    protected virtual int DoUpsert(Database db, Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  ExecuteWithoutFetch(Query[])
  
  
  Declaration
  
    public virtual int ExecuteWithoutFetch(params Query[] queries)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query[] | 
        queries | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  ExecuteWithoutFetchAsync(Query[])
  
  
  Declaration
  
    public virtual Task<int> ExecuteWithoutFetchAsync(params Query[] queries)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query[] | 
        queries | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  
  
  
  GetCollectionName(Schema)
  
  
  Declaration
  
    protected string GetCollectionName(Schema schema)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Schema | 
        schema | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  
  
  
  GetSchema(Query)
  
  
  Declaration
  
    public virtual Schema GetSchema(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
  
  
  
  GetSchemaAsync(Query)
  
  
  Declaration
  
    public virtual Task<Schema> GetSchemaAsync(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<Schema> | 
         | 
      
    
  
  
  
  
  Insert(Row, FieldFilterFunc)
  
  
  Declaration
  
    public virtual int Insert(Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  InsertAsync(Row, FieldFilterFunc)
  
  
  Declaration
  
    public virtual Task<int> InsertAsync(Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  
  
  
  Load(Query[])
  
  
  Declaration
  
    public virtual List<RowsetBase> Load(params Query[] queries)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query[] | 
        queries | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Collections.Generic.List<RowsetBase> | 
         | 
      
    
  
  
  
  
  LoadAsync(Query[])
  
  
  Declaration
  
    public virtual Task<List<RowsetBase>> LoadAsync(params Query[] queries)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query[] | 
        queries | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Collections.Generic.List<RowsetBase>> | 
         | 
      
    
  
  
  
  
  LoadOneRow(Query)
  
  
  Declaration
  
    public virtual Row LoadOneRow(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
  
  
  
  LoadOneRowAsync(Query)
  
  
  Declaration
  
    public virtual Task<Row> LoadOneRowAsync(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<Row> | 
         | 
      
    
  
  
  
  
  LoadOneRowset(Query)
  
  
  Declaration
  
    public virtual RowsetBase LoadOneRowset(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
  
  
  
  LoadOneRowsetAsync(Query)
  
  
  Declaration
  
    public virtual Task<RowsetBase> LoadOneRowsetAsync(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<RowsetBase> | 
         | 
      
    
  
  
  
  
  MakeScriptQueryHandler(QuerySource)
  
  
  Declaration
  
    public CRUDQueryHandler MakeScriptQueryHandler(QuerySource querySource)
   
  Parameters
  
  Returns
  
  
  
  
  OpenCursor(Query)
  
  
  Declaration
  
    public virtual Cursor OpenCursor(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
  
  
  
  OpenCursorAsync(Query)
  
  
  Declaration
  
    public virtual Task<Cursor> OpenCursorAsync(Query query)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Query | 
        query | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<Cursor> | 
         | 
      
    
  
  
  
  
  Save(RowsetBase[])
  
  
  Declaration
  
    public virtual int Save(params RowsetBase[] rowsets)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  SaveAsync(RowsetBase[])
  
  
  Declaration
  
    public virtual Task<int> SaveAsync(params RowsetBase[] rowsets)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  
  
  
  Update(Row, IDataStoreKey, FieldFilterFunc)
  
  
  Declaration
  
    public virtual int Update(Row row, IDataStoreKey key = null, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  UpdateAsync(Row, IDataStoreKey, FieldFilterFunc)
  
  
  Declaration
  
    public virtual Task<int> UpdateAsync(Row row, IDataStoreKey key = null, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  
  
  
  Upsert(Row, FieldFilterFunc)
  
  
  Declaration
  
    public virtual int Upsert(Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  
  UpsertAsync(Row, FieldFilterFunc)
  
  
  Declaration
  
    public virtual Task<int> UpsertAsync(Row row, FieldFilterFunc filter = null)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Threading.Tasks.Task<System.Int32> | 
         | 
      
    
  
  Implements
  
  
  
  
  
  
  
  
      System.IDisposable
  
  
  
  
  Extension Methods