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 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>
    Find by identifier for collections cross tenant
    Optional<org.bson.Document>
    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
    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
    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
    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
      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
      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
    • 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