object Macros
Macro based Codecs
Allows the compile time creation of Codecs for case classes.
The recommended approach is to use the implicit Macros.createCodecProvider[T](clazz:Class[T])* method to help build a codecRegistry:
import org.mongodb.scala.bson.codecs.Macros.createCodecProvider
import org.bson.codecs.configuration.CodecRegistries.{fromRegistries, fromProviders}
case class Contact(phone: String) case class User(_id: Int, username: String, age: Int, hobbies: List[String], contacts: List[Contact])
val codecRegistry = fromRegistries(fromProviders(classOf[User], classOf[Contact]), MongoClient.DEFAULT_CODEC_REGISTRY)
- Since
- 2.0 
- Alphabetic
- By Inheritance
- Macros
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def ##: Int- Definition Classes
- AnyRef → Any
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-    def clone(): AnyRef- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
 
-   macro  def createCodec[T](codecRegistry: CodecRegistry): Codec[T]Creates a Codec for a case class Creates a Codec for a case class - T
- the case class to create a codec from 
- codecRegistry
- the Codec Registry to use 
- returns
- the Codec for the case class 
 - Annotations
- @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
 
-   macro  def createCodec[T](): Codec[T]Creates a Codec for a case class Creates a Codec for a case class - T
- the case class to create a Codec from 
- returns
- the Codec for the case class 
 - Annotations
- @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
 
-   macro  def createCodecIgnoreNone[T](codecRegistry: CodecRegistry): Codec[T]Creates a Codec for a case class Creates a Codec for a case class - T
- the case class to create a codec from 
- codecRegistry
- the Codec Registry to use 
- returns
- the Codec for the case class 
 - Annotations
- @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
- Since
- 2.1 
 
-   macro  def createCodecIgnoreNone[T](): Codec[T]Creates a Codec for a case class Creates a Codec for a case class - T
- the case class to create a Codec from 
- returns
- the Codec for the case class 
 - Annotations
- @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
- Since
- 2.1 
 
-   implicit macro  def createCodecProvider[T](clazz: Class[T]): CodecProviderCreates a CodecProvider for a case class using the given class to represent the case class Creates a CodecProvider for a case class using the given class to represent the case class - T
- the case class to create a Codec from 
- clazz
- the clazz that is the case class 
- returns
- the CodecProvider for the case class 
 - Annotations
- @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
 
-   macro  def createCodecProvider[T](): CodecProviderCreates a CodecProvider for a case class Creates a CodecProvider for a case class - T
- the case class to create a Codec from 
- returns
- the CodecProvider for the case class 
 - Annotations
- @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
 
-   macro  def createCodecProviderIgnoreNone[T](clazz: Class[T]): CodecProviderCreates a CodecProvider for a case class that ignores any Nonevalues, using the given class to represent the case classCreates a CodecProvider for a case class that ignores any Nonevalues, using the given class to represent the case class- T
- the case class to create a Codec from 
- clazz
- the clazz that is the case class 
- returns
- the CodecProvider for the case class 
 - Annotations
- @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
- Since
- 2.1 
 
-   macro  def createCodecProviderIgnoreNone[T](): CodecProviderCreates a CodecProvider for a case class that ignores any NonevaluesCreates a CodecProvider for a case class that ignores any Nonevalues- T
- the case class to create a Codec from 
- returns
- the CodecProvider for the case class 
 - Annotations
- @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
- Since
- 2.1 
 
-   final  def eq(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-    def equals(arg0: AnyRef): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def getClass(): Class[_ <: AnyRef]- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
 
-    def hashCode(): Int- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
 
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-   final  def ne(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def notify(): Unit- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
 
-   final  def notifyAll(): Unit- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
 
-   final  def synchronized[T0](arg0: => T0): T0- Definition Classes
- AnyRef
 
-    def toString(): String- Definition Classes
- AnyRef → Any
 
-   final  def wait(arg0: Long, arg1: Int): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
 
-   final  def wait(): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
Deprecated Value Members
-    def finalize(): Unit- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
 
This is the documentation for the MongoDB Scala driver.
Driver structure
The mongodb scala driver.
To get started you need a MongoClient instance, either from a connection string or via a org.mongodb.scala.MongoClientSettings.
Notable packages include: