nishanthg92
How do i use `arrayFilters` in mongoDB with phoenix elixir project?
I have a collection like below.
"userId" : ObjectId("5c666338421aa9791982f367")
"attendance" : [
{
"attendanceTakenAt" : "2019-02-19T06:26:25.423000Z",
"day" : 19,
"hour" : 6,
"minute" : 26,
"month" : 2,
"morningAttendance" : true,
"period" : "morning",
"seconds" : 25,
"year" : 2019
},
{
"afternoonAttendance" : true,
"attendanceTakenAt" : "2019-02-19T07:00:31.019000Z",
"day" : 19,
"hour" : 7,
"minute" : 0,
"month" : 2,
"period" : "afternoon",
"seconds" : 31,
"year" : 2019
},
{
"afternoonAttendance" : false,
"attendanceTakenAt" : "2019-02-19T09:09:04.960000Z",
"day" : 20,
"hour" : 9,
"minute" : 9,
"month" : 2,
"period" : "afternoon",
"seconds" : 4,
"year" : 2019
},
{
"attendanceTakenAt" : "2019-03-01T06:24:41.474000Z",
"day" : 1,
"hour" : 6,
"minute" : 24,
"month" : 3,
"morningAttendance" : true,
"period" : "morning",
"seconds" : 41,
"year" : 2019
},
{
"afternoonAttendance" : true,
"attendanceTakenAt" : "2019-03-01T06:52:53.447000Z",
"day" : 1,
"hour" : 6,
"minute" : 52,
"month" : 3,
"period" : "afternoon",
"seconds" : 53,
"year" : 2019
},
{
"afternoonAttendance" : true,
"attendanceTakenAt" : "2019-03-07T06:58:04.483000Z",
"day" : 7,
"hour" : 6,
"minute" : 58,
"month" : 3,
"period" : "afternoon",
"seconds" : 4,
"year" : 2019
}
]
Now i need to update "afternoonAttendance": false for "attendance.day": 7. I tried using arrayFilters like below in mongo.
db.student_database.update({userId: ObjectId("5c666338421aa9791982f367"), rollNumber: "100"}, { $set: { "attendance.$[elem].afternoonAttendance" : false } }, {multi: true, arrayFilters: [ {"elem.day": 7, "elem.month": 3, "elem.year": 2019, "elem.period": "afternoon"} ] })
Above query works fine in MongoDB interface. but, I am not gettiing to use this query in phoenix elixir project. I am trying like below in elixir project.
filter = %{
"userId" => ObjectId("5c666338421aa9791982f367"),
"rollNumber" => "100"
}
update = %{
"$set" => %{
"attendance.$[elem].afternoonAttendance" => false
}
}
options = %{
"arrayFilters" => [%{ "elem.day" => 7, "elem.month" => 3, "elem.year" => 2019, "elem.period" => "afternoon" }]
}
Mongo.update_many(:mongo, "db_collection", filter, update, options)
Which is getting error. Please help me how to update in elixir project.
First Post!
Ankhers
Can you post the error that you are getting?
From a quick glance your options variable is a map. If you look at the documentation for update_many/5, the options are meant to be a keyword list. But without seeing the error you are getting, it is impossible for me to know if this was the issue you are bumping up against.
Popular in Questions
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible.
total = 10
while total != 0
...
New
Hello everyone,
I try to use an Javascript Event Handler in my root.html.leex file.
Therefore I created a function in the app.js file: ...
New
What is the idiomatic way of matching for not nil in Elixir?
E.g.,
First way:
defp halt_if_not_signed_in(conn, signed_in_account) when...
New
Hi,
is there any work on GUI with Elixir, that is similar to Electron/Javascript? My idea is to bundle Phoenix and BEAM into a single se...
New
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
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
I have followed this StackOverflow post to install the specific version of Erlang.
And When I am running mix ecto.setup then getting fol...
New
Using vs code and installed ElixirLS: support and debugger.
And I got an error popped up on start up says
Failed to run ‘elixir’ comma...
New
I have a User schema with a :from_id field set to type :string:
defmodule TweetBot.Repo.Migrations.CreateUsers do
use Ecto.Migration
...
New
I am trying to run a deploy with docker and I successfully runned with this command:
docker build -t romenigld/blog-prod .
but when I t...
New
Other popular topics
Hello!
tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability.
After spen...
New
What is the idiomatic way of matching for not nil in Elixir?
E.g.,
First way:
defp halt_if_not_signed_in(conn, signed_in_account) when...
New
After calling mix ecto.create I get this error:
17:00:32.162 [error] GenServer #PID<0.412.0> terminating
** (Postgrex.Error) FATAL...
New
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this:
...
New
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine)
This is a plugin that adds support for Elixir to JetBrains IntelliJ...
New
Hi,
I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including.
What is Phoenix LiveV...
New
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








