Class MongoDBUtils


  • public class MongoDBUtils
    extends Object
    Utilities for MongoDB.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Object getAcceptableDatastoreValue​(Object value)  
      static String getClassNameForIdentity​(Object id, org.datanucleus.metadata.AbstractClassMetaData rootCmd, org.datanucleus.ExecutionContext ec, org.datanucleus.ClassLoaderResolver clr)
      Convenience method that tries to find the object with the specified identity from all DBCollection objects from the rootCmd and subclasses.
      static String getDefaultValueForMember​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
      Accessor for the default value specified for the provided member.
      static String getFieldName​(org.datanucleus.metadata.AbstractMemberMetaData mmd, int fieldNumber)
      Accessor for the MongoDB field for the field of this embedded field.
      static Object getFieldValueForJavaSerialisedField​(org.datanucleus.metadata.AbstractMemberMetaData mmd, Object value)
      Method to return the raw value when stored java serialised.
      static Object getFieldValueFromStored​(org.datanucleus.ExecutionContext ec, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.store.schema.table.MemberColumnMapping mapping, Object value, org.datanucleus.metadata.FieldRole fieldRole)
      Convenience method to convert the stored value for an object field into the value that will be held in the object.
      static com.mongodb.DBObject getObjectForObjectProvider​(com.mongodb.DBCollection dbCollection, org.datanucleus.state.ObjectProvider op, boolean checkVersion, boolean originalValue)
      Method to return the DBObject that equates to the provided object.
      static List getObjectsOfCandidateType​(org.datanucleus.store.query.Query q, com.mongodb.DB db, com.mongodb.BasicDBObject filterObject, com.mongodb.BasicDBObject orderingObject, Map<String,​Object> options, Integer skip, Integer limit)
      Convenience method to return all objects of the candidate type (optionally allowing subclasses).
      static List getObjectsOfCandidateType​(org.datanucleus.store.query.Query q, com.mongodb.DB db, com.mongodb.BasicDBObject filterObject, Map<String,​Object> options)  
      static Object getObjectUsingApplicationIdForDBObject​(com.mongodb.DBObject dbObject, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, boolean ignoreCache, int[] fpMembers)  
      static Object getObjectUsingDatastoreIdForDBObject​(com.mongodb.DBObject dbObject, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, boolean ignoreCache, int[] fpMembers)  
      static Object getObjectUsingNondurableIdForDBObject​(com.mongodb.DBObject dbObject, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, boolean ignoreCache, int[] fpMembers)  
      static Object getPojoForDBObjectForCandidate​(com.mongodb.DBObject dbObject, org.datanucleus.ExecutionContext ec, org.datanucleus.metadata.AbstractClassMetaData cmd, int[] fpMembers, boolean ignoreCache)
      Convenience method that takes the provided DBObject and the details of the candidate that it is an instance of, and converts it into the associated POJO.
      static Object getStoredValueForField​(org.datanucleus.ExecutionContext ec, org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.store.schema.table.MemberColumnMapping mapping, Object value, org.datanucleus.metadata.FieldRole fieldRole)
      Convenience method to convert the raw value of an object field into the value that will be stored in MongoDB.
      static byte[] getStoredValueForJavaSerialisedField​(org.datanucleus.metadata.AbstractMemberMetaData mmd, Object value)
      Method to return the value to store when using java serialisation.
      static boolean isMemberNested​(org.datanucleus.metadata.AbstractMemberMetaData mmd)  
      static List<Long> performMongoCount​(com.mongodb.DB db, com.mongodb.BasicDBObject filterObject, Class candidateClass, boolean subclasses, org.datanucleus.ExecutionContext ec)  
      protected static void selectAllFieldsOfEmbeddedObject​(org.datanucleus.metadata.AbstractMemberMetaData mmd, com.mongodb.BasicDBObject fieldsSelection, org.datanucleus.ExecutionContext ec, org.datanucleus.ClassLoaderResolver clr)  
    • Method Detail

      • performMongoCount

        public static List<Long> performMongoCount​(com.mongodb.DB db,
                                                   com.mongodb.BasicDBObject filterObject,
                                                   Class candidateClass,
                                                   boolean subclasses,
                                                   org.datanucleus.ExecutionContext ec)
                                            throws com.mongodb.MongoException
        Throws:
        com.mongodb.MongoException
      • isMemberNested

        public static boolean isMemberNested​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
      • getDefaultValueForMember

        public static String getDefaultValueForMember​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
        Accessor for the default value specified for the provided member. If no defaultValue is provided on the column then returns null.
        Parameters:
        mmd - Metadata for the member
        Returns:
        The default value
      • getFieldName

        public static String getFieldName​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                          int fieldNumber)
        Accessor for the MongoDB field for the field of this embedded field. Uses the column name from the embedded definition (if present), otherwise falls back to the column name of the field in its own class definition, otherwise uses its field name.
        Parameters:
        mmd - Metadata for the owning member
        fieldNumber - Member number of the embedded object
        Returns:
        The field name to use
      • getClassNameForIdentity

        public static String getClassNameForIdentity​(Object id,
                                                     org.datanucleus.metadata.AbstractClassMetaData rootCmd,
                                                     org.datanucleus.ExecutionContext ec,
                                                     org.datanucleus.ClassLoaderResolver clr)
        Convenience method that tries to find the object with the specified identity from all DBCollection objects from the rootCmd and subclasses. Returns the class name of the object with this identity (or null if not found).
        Parameters:
        id - The identity
        rootCmd - ClassMetaData for the root class in the inheritance tree
        ec - ExecutionContext
        clr - ClassLoader resolver
        Returns:
        The class name of the object with this id
      • getObjectForObjectProvider

        public static com.mongodb.DBObject getObjectForObjectProvider​(com.mongodb.DBCollection dbCollection,
                                                                      org.datanucleus.state.ObjectProvider op,
                                                                      boolean checkVersion,
                                                                      boolean originalValue)
        Method to return the DBObject that equates to the provided object.
        Parameters:
        dbCollection - The collection in which it is stored
        op - The ObjectProvider
        checkVersion - Whether to also check for a particular version
        originalValue - Whether to use the original value of fields (when using nondurable id and doing update).
        Returns:
        The object (or null if not found)
      • getObjectsOfCandidateType

        public static List getObjectsOfCandidateType​(org.datanucleus.store.query.Query q,
                                                     com.mongodb.DB db,
                                                     com.mongodb.BasicDBObject filterObject,
                                                     Map<String,​Object> options)
      • getObjectsOfCandidateType

        public static List getObjectsOfCandidateType​(org.datanucleus.store.query.Query q,
                                                     com.mongodb.DB db,
                                                     com.mongodb.BasicDBObject filterObject,
                                                     com.mongodb.BasicDBObject orderingObject,
                                                     Map<String,​Object> options,
                                                     Integer skip,
                                                     Integer limit)
        Convenience method to return all objects of the candidate type (optionally allowing subclasses).
        Parameters:
        q - Query
        db - Mongo DB
        filterObject - Optional filter object
        orderingObject - Optional ordering object
        options - Set of options for controlling this query
        skip - Number of records to skip
        limit - Max number of records to return
        Returns:
        List of all candidate objects (implements QueryResult)
      • getPojoForDBObjectForCandidate

        public static Object getPojoForDBObjectForCandidate​(com.mongodb.DBObject dbObject,
                                                            org.datanucleus.ExecutionContext ec,
                                                            org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                            int[] fpMembers,
                                                            boolean ignoreCache)
        Convenience method that takes the provided DBObject and the details of the candidate that it is an instance of, and converts it into the associated POJO.
        Parameters:
        dbObject - The DBObject
        ec - ExecutionContext
        cmd - Metadata for the candidate class
        fpMembers - FetchPlan members for the class that are provided
        ignoreCache - Whether to ignore the cache
        Returns:
        The Pojo object
      • selectAllFieldsOfEmbeddedObject

        protected static void selectAllFieldsOfEmbeddedObject​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                              com.mongodb.BasicDBObject fieldsSelection,
                                                              org.datanucleus.ExecutionContext ec,
                                                              org.datanucleus.ClassLoaderResolver clr)
      • getObjectUsingApplicationIdForDBObject

        public static Object getObjectUsingApplicationIdForDBObject​(com.mongodb.DBObject dbObject,
                                                                    org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                                    org.datanucleus.ExecutionContext ec,
                                                                    boolean ignoreCache,
                                                                    int[] fpMembers)
      • getObjectUsingDatastoreIdForDBObject

        public static Object getObjectUsingDatastoreIdForDBObject​(com.mongodb.DBObject dbObject,
                                                                  org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                                  org.datanucleus.ExecutionContext ec,
                                                                  boolean ignoreCache,
                                                                  int[] fpMembers)
      • getObjectUsingNondurableIdForDBObject

        public static Object getObjectUsingNondurableIdForDBObject​(com.mongodb.DBObject dbObject,
                                                                   org.datanucleus.metadata.AbstractClassMetaData cmd,
                                                                   org.datanucleus.ExecutionContext ec,
                                                                   boolean ignoreCache,
                                                                   int[] fpMembers)
      • getStoredValueForField

        public static Object getStoredValueForField​(org.datanucleus.ExecutionContext ec,
                                                    org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                    org.datanucleus.store.schema.table.MemberColumnMapping mapping,
                                                    Object value,
                                                    org.datanucleus.metadata.FieldRole fieldRole)
        Convenience method to convert the raw value of an object field into the value that will be stored in MongoDB. Note that this does not cater for relation fields, just basic fields.
        Parameters:
        ec - ExecutionContext
        mmd - Metadata for the field holding this value (if available)
        mapping - Mapping for the member (if available)
        value - The raw value for the field
        fieldRole - The role of this value for the field
        Returns:
        The value to store
      • getFieldValueFromStored

        public static Object getFieldValueFromStored​(org.datanucleus.ExecutionContext ec,
                                                     org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                     org.datanucleus.store.schema.table.MemberColumnMapping mapping,
                                                     Object value,
                                                     org.datanucleus.metadata.FieldRole fieldRole)
        Convenience method to convert the stored value for an object field into the value that will be held in the object. Note that this does not cater for relation fields, just basic fields.
        Parameters:
        ec - ExecutionContext
        mmd - Metadata for the field holding this value (if available)
        mapping - Member column mapping (if available)
        value - The stored value for the field
        fieldRole - The role of this value for the field
        Returns:
        The value to put in the field
      • getAcceptableDatastoreValue

        public static Object getAcceptableDatastoreValue​(Object value)
      • getStoredValueForJavaSerialisedField

        public static byte[] getStoredValueForJavaSerialisedField​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                                  Object value)
        Method to return the value to store when using java serialisation.
        Parameters:
        mmd - Metadata of the member
        value - The raw value of the member
        Returns:
        The value to store
      • getFieldValueForJavaSerialisedField

        public static Object getFieldValueForJavaSerialisedField​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                                 Object value)
        Method to return the raw value when stored java serialised.
        Parameters:
        mmd - Metadata for the member
        value - The serialised value
        Returns:
        The raw value