Mongo.Ecto.Helpers

Defines helpers to ease working with MongoDB in models or other places where you work with them. You’d probably want to import it.

Summary

Functions

Allows updating only a fragment of a nested document inside an array

Allows updating only a fragment of a nested document

Allows using inline JavaScript in queries in where clauses and inserting it as a value to the database

Creates proper regex object that can be passed to the database

Functions

change_array(idx, field \\ "", value)

Specs

change_array(pos_integer, String.t, term) :: Mongo.Ecto.ChangeArray.t

Allows updating only a fragment of a nested document inside an array

Usage in queries

MyRepo.update_all(Post,
  set: [comments: change_array(0, "author", "NewName")])
change_map(field, value)

Specs

change_map(String.t, term) :: Mongo.Ecto.ChangeMap.t

Allows updating only a fragment of a nested document

Usage in queries

MyRepo.update_all(Post,
  set: [meta: change_map("author.name", "NewName")])
javascript(code, scope \\ [])

Allows using inline JavaScript in queries in where clauses and inserting it as a value to the database.

The second argument acts as a context for the function. All values will be converted to valid BSON types.

Raises ArgumentError if any of the values cannot be converted.

Usage in queries

from p in Post,
  where: ^javascript("this.value === value", value: 1)
regex(pattern, options \\ "")

Creates proper regex object that can be passed to the database.

Usage in queries

from p in Post,
  where: fragment(title: ^regex("elixir", "i"))

For supported options please see Mongo.Ecto.Regex module documentation.