Package fr.gouv.vitam.common.database.api.impl

# Class VitamMongoRepository

java.lang.Object
fr.gouv.vitam.common.database.api.impl.VitamMongoRepository

All Implemented Interfaces:
  `VitamRepository`

public class VitamMongoRepository extends Object implements VitamRepository

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `VitamMongoRepository(com.mongodb.client.MongoCollection<org.bson.Document> collection)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `count()`
  Count occurence of documents
  `long`
  `count(org.bson.conversions.Bson filter)`
  Count occurence of documents
  `void`
  `delete(List<String> ids, int tenant)`
  Deleted all documents by ids
  `com.mongodb.client.FindIterable<org.bson.Document>`
  `findByFieldsDocuments(Map<String,String> fields, int mongoBatchSize, Integer tenant)`
  Return iterable over document for the given collection for a specific tenant and fields
  `Optional<org.bson.Document>`
  `findByIdentifier(String identifier)`
  Find by identifier for collections cross tenant
  `Optional<org.bson.Document>`
  `findByIdentifierAndTenant(String identifier, Integer tenant)`
  find by identifier for all tenant
  `com.mongodb.client.FindIterable<org.bson.Document>`
  `findDocuments(int mongoBatchSize)`
  Return iterable over document for the given collection
  `com.mongodb.client.FindIterable<org.bson.Document>`
  `findDocuments(int mongoBatchSize, Integer tenant)`
  Return iterable over document for the given collection for a specific tenant
  `com.mongodb.client.FindIterable<org.bson.Document>`
  `findDocuments(Collection<String> ids, org.bson.conversions.Bson projection)`
  Find collection of document by there id and return only projection fields
  `com.mongodb.client.FindIterable<org.bson.Document>`
  `findDocuments(org.bson.conversions.Bson query, int mongoBatchSize)`
  Return iterable over document for the given collection
  `Optional<org.bson.Document>`
  `getByID(String id, Integer tenant)`
  Get vitam document by id
  `long`
  `purge()`
  Be careful when using this method Remove by tenant for collection cross-tenant
  `long`
  `purge(Integer tenant)`
  Be careful when using this method Remove by tenant for collection multi-tenant
  `void`
  `remove(String id, Integer tenant)`
  Remove document by id
  `long`
  `remove(org.bson.conversions.Bson query)`
  Be careful when using this method Remove by query
  `void`
  `removeByNameAndTenant(String name, Integer tenant)`
  Be careful when using this method Remove collection by name and tenant
  `void`
  `save(List<org.bson.Document> documents)`
  Save a list of vitam documents
  `void`
  `save(org.bson.Document document)`
  Save vitam document
  `void`
  `saveOrUpdate(List<org.bson.Document> documents)`
  Save or update a list of vitam documents
  `VitamRepositoryStatus`
  `saveOrUpdate(org.bson.Document document)`
  Save or updatevitam document
  `void`
  `update(List<com.mongodb.client.model.WriteModel<org.bson.Document>> queries)`
  Used to execute a bulk update If document exists then update If document do not exists then create document throw Duplicate key exception if document exists by _id but not exists by filter in the update one model

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### VitamMongoRepository

    public VitamMongoRepository(com.mongodb.client.MongoCollection<org.bson.Document> collection)

- ## Method Details

  - ### save

    public void save(org.bson.Document document) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Save vitam document
    Specified by:
      `save` in interface `VitamRepository`
    Parameters:
      `document` - the document to be saved
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### saveOrUpdate

    public VitamRepositoryStatus saveOrUpdate(org.bson.Document document) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Save or updatevitam document
    Specified by:
      `saveOrUpdate` in interface `VitamRepository`
    Parameters:
      `document` - the document to be saved
    Returns:
      status CREATED or UPDATED
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### save

    public void save(List<org.bson.Document> documents) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Save a list of vitam documents
    Specified by:
      `save` in interface `VitamRepository`
    Parameters:
      `documents` - the list of documents to be saved
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### saveOrUpdate

    public void saveOrUpdate(List<org.bson.Document> documents) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Save or update a list of vitam documents
    Specified by:
      `saveOrUpdate` in interface `VitamRepository`
    Parameters:
      `documents` - the list of document to be saved orupdated
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### update

    public void update(List<com.mongodb.client.model.WriteModel<org.bson.Document>> queries) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Used to execute a bulk update If document exists then update If document do not exists then create document throw Duplicate key exception if document exists by _id but not exists by filter in the update one model
    Specified by:
      `update` in interface `VitamRepository`
    Parameters:
      `queries` -
    Throws:
      `DatabaseException`

  - ### remove

    public void remove(String id, Integer tenant) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Remove document by id
    Specified by:
      `remove` in interface `VitamRepository`
    Parameters:
      `id` - the id of the document to be removed
      `tenant` - the tenant of the document to be removed
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### remove

    public long remove(org.bson.conversions.Bson query) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Be careful when using this method Remove by query
    Specified by:
      `remove` in interface `VitamRepository`
    Parameters:
      `query` -
    Throws:
      `DatabaseException`

  - ### removeByNameAndTenant

    public void removeByNameAndTenant(String name, Integer tenant) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Be careful when using this method Remove collection by name and tenant
    Specified by:
      `removeByNameAndTenant` in interface `VitamRepository`
    Parameters:
      `name` - the name of the collection to be removed
      `tenant` - the tenant of the collection to be removed
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### purge

    public long purge(Integer tenant) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Be careful when using this method Remove by tenant for collection multi-tenant
    Specified by:
      `purge` in interface `VitamRepository`
    Parameters:
      `tenant` - the tenant
    Returns:
      the number of deleted documents
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### purge

    public long purge() throws DatabaseException
    Description copied from interface: `VitamRepository`
    Be careful when using this method Remove by tenant for collection cross-tenant
    Specified by:
      `purge` in interface `VitamRepository`
    Returns:
      number of purged documents
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### getByID

    public Optional<org.bson.Document> getByID(String id, Integer tenant) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Get vitam document by id
    Specified by:
      `getByID` in interface `VitamRepository`
    Parameters:
      `id` - the document id
      `tenant` - the tenant of the document
    Returns:
      the document if found
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### findByIdentifierAndTenant

    public Optional<org.bson.Document> findByIdentifierAndTenant(String identifier, Integer tenant) throws DatabaseException
    Description copied from interface: `VitamRepository`
    find by identifier for all tenant
    Specified by:
      `findByIdentifierAndTenant` in interface `VitamRepository`
    Parameters:
      `identifier` - the identifier of the document
      `tenant` - the tenant of the document
    Returns:
      the document if found
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### findByIdentifier

    public Optional<org.bson.Document> findByIdentifier(String identifier) throws DatabaseException
    Description copied from interface: `VitamRepository`
    Find by identifier for collections cross tenant
    Specified by:
      `findByIdentifier` in interface `VitamRepository`
    Parameters:
      `identifier` - the identifier of the document
    Returns:
      the document if found
    Throws:
      `DatabaseException` - in case error with database occurs

  - ### findByFieldsDocuments

    public com.mongodb.client.FindIterable<org.bson.Document> findByFieldsDocuments(Map<String,String> fields, int mongoBatchSize, Integer tenant)
    Description copied from interface: `VitamRepository`
    Return iterable over document for the given collection for a specific tenant and fields
    Specified by:
      `findByFieldsDocuments` in interface `VitamRepository`
    Parameters:
      `fields` - list of fields for filter
      `mongoBatchSize` - mongoBatchSize
      `tenant` - tenant id
    Returns:
      iterable over document for the given collection

  - ### findDocuments

    public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(Collection<String> ids, org.bson.conversions.Bson projection)
    Description copied from interface: `VitamRepository`
    Find collection of document by there id and return only projection fields
    Specified by:
      `findDocuments` in interface `VitamRepository`
    Parameters:
      `ids` - list of documents id
      `projection` - the fields wanted in the result
    Returns:
      An iterable of documents

  - ### findDocuments

    public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(int mongoBatchSize, Integer tenant)
    Description copied from interface: `VitamRepository`
    Return iterable over document for the given collection for a specific tenant
    Specified by:
      `findDocuments` in interface `VitamRepository`
    Parameters:
      `mongoBatchSize` - mongoBatchSize
      `tenant` - tenant id
    Returns:
      iterable over document for the given collection

  - ### findDocuments

    public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(int mongoBatchSize)
    Description copied from interface: `VitamRepository`
    Return iterable over document for the given collection
    Specified by:
      `findDocuments` in interface `VitamRepository`
    Parameters:
      `mongoBatchSize` - mongoBatchSize
    Returns:
      iterable over document for the given collection

  - ### findDocuments

    public com.mongodb.client.FindIterable<org.bson.Document> findDocuments(org.bson.conversions.Bson query, int mongoBatchSize)
    Description copied from interface: `VitamRepository`
    Return iterable over document for the given collection
    Specified by:
      `findDocuments` in interface `VitamRepository`
    Parameters:
      `query` - the mongo query to be executed
      `mongoBatchSize` - mongoBatchSize
    Returns:
      iterable over document for the given collection

  - ### delete

    public void delete(List<String> ids, int tenant)
    Description copied from interface: `VitamRepository`
    Deleted all documents by ids
    Specified by:
      `delete` in interface `VitamRepository`
    Parameters:
      `ids` -
      `tenant` -

  - ### count

    public long count()
    Description copied from interface: `VitamRepository`
    Count occurence of documents
    Specified by:
      `count` in interface `VitamRepository`
    Returns:
      the number of documents

  - ### count

    public long count(org.bson.conversions.Bson filter)
    Description copied from interface: `VitamRepository`
    Count occurence of documents
    Specified by:
      `count` in interface `VitamRepository`
    Parameters:
      `filter` - filtre
    Returns:
      the number of documents