fireproofsocks
Has anyone used the jsonSchema validation in Mongo?
Has anyone used the jsonSchema validator with the mongodb package? I’m hoping to implement something like what is demonstrated in the docs:
https://docs.mongodb.com/manual/core/schema-validation/
I’ve tried something like this:
Mongo.command(mongo_pid(), [createCollection: coll])
after looking over the mongodb source code, but so far, I’ve only succeeded in getting this message:
%Mongo.Error{code: 59, host: nil, message: "command failed: no such command: 'createCollection'"}
Most Liked
fireproofsocks
Figured it out. Anyone who needs to define $jsonSchema validation on their Mongo collections can issue a command like the following:
# Create the collection by inserting a record
Mongo.insert_one(mongo_pid(), "phones", %{"phone" => "888-555-1212", "name" => "Example"})
# Modify the collection
cmd = [
collMod: "phones",
validator: [
[
json_schema: %{
bson_type: "object",
required: ["phone"]
}
]
]
]
Mongo.command(mongo_pid(), cmd)
Remember: you can only use collMod on an existing collection! Insert a document there (or maybe create an index?) to get the collection created so you can modify it.
Note: the above code uses the mongo_pid() function to retrieve the proper process.
1
Popular in Questions
How to handle excepions in elixir? Suppose i have A, B, C ,D, E modules. and each module has get() function. A.get() method will call th...
New
Hi, I’m using Ubuntu 18.04 and after updating to OTP-24.0 yesterday i have this warning when I run “mix local.hex”:
14:57:30.512 [warn] ...
New
i’m a new one to elixir
which editor can i use
vs code? or atom?
Thanks! :smiley:
New
Student & New to elixir. Nice language.
I want to convert a english character, e.g. “a”, which is stored in a variable, to it’s asci...
New
What is most correct way to open, read and parse JSON file with poison?
For example if we have example.json file in root of some projec...
New
Background
Let’s assume I have a typical GenServer that receives messages as requests, does some operation in a DB and returns responses....
New
I’m currently trying to understand how to join three tables using Ecto. All the examples I’ve seen use 2, so maybe I’m just missing somet...
New
Hi guys, nice to meet you to the whole forum, I’m new here, I’m trying to configure visual studio code for elixir, right now the intellis...
New
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: )
Hello all, this is ...
New
In AR this is so simple
@articles = current_user.articles
How to do in Ecto?
def index(conn, _params) do
current_user = conn.assig...
New
Other popular topics
Update:
How to use the Blogs & Podcasts section
You can post links to your blog posts or podcasts either in one of the Official Blog...
New
Hello, I get Persian date from my client and convert it to normal calendar like this:
def jalali_string_to_miladi_english_number(persi...
New
Hello!
tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability.
After spen...
New
Credo is smart enough to check for (something like) this:
assert length(the_list) == 0
with this response:
Checking if an enum is empt...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
Hello everybody,
usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
Hi,
I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors:
[WARN] - (starship::utils): Executing command ...
New







