For the primary you can look at
Why is there a primary election? Basically it's a way to up- and downvote and thereby reduce the amount of people that will be considered for the real election. It's especially important when there are lots of nominations, which tends to happen more often on bigger sites. This answer also mentions that a maximum of 10 people will advance to the real election if there are more than 10 people when the primary starts.
The real election will then be giving you a chance to vote for your rank 1, 2 and 3. No "upvotes", no "downvotes", just a choice of "Which of these would you prefer?"
About the amount of mods elected: the first election you mentioned was the very first election, which means that this was the first time we switched from appointed pro-tempore mods to elected mods and needed a whole team. For the next election the team needed to grow, but as it was not that a whole new team was needed there was only one position. The criteria are basically that the current mod team decides that they would like to have more members because the workload is getting too big - the site is simply growing!
For more information about how voting counts you can look at
How are moderator election votes counted, in plain English? Your votes are used in an iterative process to decide who "wins". I also like the easy description in this answer:
Here's the so-über-short-it's-almost-misleading version:
Meek STV does calculations in rounds (or "iteratively," for you programmer types). In the first round, all votes count for the candidate marked as the first choice. The system figures out how many votes are needed to win. If anyone gets that many votes, he wins, and any "extra" votes he got are handed out to the voters' second choices. If nobody wins, the weakest candidate gets cut and all votes he received go to the voters' second choices. Then the next round starts. Rounds keep going until enough people have been elected.
For a comprehensive overview over the election process you can look at
There's an election going on. What's happening and how does it work? The short form is:
7 days Nomination:
Anyone may nominate themselves to be a moderator as long as they fulfill certain conditions.
4 days Primary:
This is where the voting starts. Any community member with at least 150 reputation may vote, but candidates are not allowed to vote for themselves. You get one vote per candidate in the same manner as a question or answer. There are no comments allowed.
After 4 days the top 10 nominees by vote advance to the election phase.
4 days (or 8 if Primary was skipped)
Lastly, comes the election phase. Once again any user with 150 reputation or more is allowed to vote; unlike the Primary phase candidates are allowed to vote for themselves. Once again, no comments are allowed and the candidates are displayed in a random order.
Each community member gets 3 votes, 1st choice, 2nd choice and 3rd choice. Any number of these 3 votes can be used. Votes are tallied using the Meek STV method.
To get an idea about what each phase entails for candidates and voters you can look at the answer from @MonicaCellio to the question What are the current goals of each of the election phases? The nomination allows candidates to present themselves and voters to familiarize themselves with the candidates. The primary allows candidates to elaborate on their views in Meta discussions, comments and the chat, while the voters can ask specific questions to sort the top 10 out. In the election the voters decide which people should become newly appointed mods.
If you are thinking about nominating yourself you can check your so-called "candidate score" before submitting your nomination with this SEDE query. The candidate score is calculated by checking your reputation (1 point per 1k reputation up to a maximum of 20) and different badges for moderating (8 badges), editing (6 badges) and participation (6 badges), which leads to a total of 40 points you can achieve at most. This score will be displayed next to your profile when submitting your nomination. You can find your userID when going to your profile and checking the URL in your browsers address bar which is "blabla/users/yourUserID/yourUserName" with yourUserID being the ID you have to Enter into the field under the query on SEDE. In my case the userID is 28789 for example.