You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.5 KiB

Vampires!

Interview with the Vampire

Setup

  1. Start mongod

  2. Open your mongo console with mongo. Note: This homework is done in the terminal, there is no Express.

  3. Connect to a new database called monsters with use monsters

  4. Using the js objects of vampires in populateVampires.js, add the vampires to a vampires collection. Hint: you can use the Adding Losts of New Documents syntax from the example at the bottom of this document.

Resources

Utilize the following resources to research the commands you will need

[https://docs.mongodb.org/manual/reference/operator/query/#query-selectors]

[http://mongoosejs.com/]

MONGO SELECTION COMMANDS

For the following parts, write mongo queries in your CLI, and when you figure out the right answer, copy the correct mongo queries into a selectVampires.md file.

Part 1

Select by comparison

Select all the vampires that:

  • have greater than 500 victims
  • have fewer than or equal to 150 victims
  • have a victim count is not equal to 210234
  • have greater than 150 AND fewer than 500 victims

Part 2

Select by exists or does not exist

Select all the vampires that:

  • have a title property
  • do not have a victims property
  • have a title AND no victims
  • have victims AND the victims they have are greater than 1000

Part 3

Select objects that match one of several values

Select all the vampires that:

  • love either frilly shirtsleeves or frilly collars

  • love brooding

  • love at least one of the following: appearing innocent, trickery, lurking in rotting mansions, R&B music

  • love fancy cloaks but not if they also love either top hats or virgin blood * Hint-You will also have to use $nin *

    Part 4

Select objects that match one of several values

Select all the vampires that:

  • love either frilly shirtsleeves or frilly collars
  • love brooding
  • love at least one of the following: appearing innocent, trickery, lurking in rotting mansions, R&B music
  • love fancy cloaks but not if they also love either top hats or virgin blood * Hint-You will also have to use $nin *

Part 5

Select with OR

Select all the vampires that:

  • are from New York, New York, US or New Orleans, Louisiana, US
  • love brooding or being tragic
  • have more than 1000 victims or love marshmallows
  • have red hair or green eyes

Part 6

Negative Selection

Select all vampires that:

  • love ribbons but do not have blonde hair
  • are not from Rome
  • do not love any of the following: [fancy cloaks, frilly shirtsleeves, appearing innocent, being tragic, brooding]
  • have not killed more than 200 people

Part 7

Replacing a record

Replace the following:

  • replace the vampire called 'Claudia' with a vampire called 'Eve'. 'Eve' will have a key called 'portrayed_by' with the value 'Tilda Swinton'
  • replace the first male vampire with another whose name is 'Guy Man', and who has a key 'is_actually' with the value 'were-lizard'

Part 8

Update single values

Update the following:

  • Update 'Guy Man' to have a gender of 'm'
  • Update 'Eve' to have a gender of 'f'
  • Update 'Guy Man' to have an array called 'hates' that includes 'clothes' and 'jobs'
  • Update 'Guy Man's' hates array also to include 'alarm clocks' and 'jackalopes'
  • Rename 'Eve's' name field to 'moniker'

Part 9

Remove documents

https://docs.mongodb.org/manual/tutorial/remove-documents/

  • Remove a single document wherein the hair_color is 'brown'
  • Remove all documents wheren the eye-color is 'green'

Bonus

Make an express app and include Mongoose. Make a Mongoose schema for Items, populate the database with two items, then make an index route that will res.send the json for those items.

Extra bonus: Make a show route.

Adding Lots of New Documents in plain Mongo

Pretend we have a collection called people and want to add lots of documents, we can simply provide this array to the insert method and it will create a document for each object in the array.

[
  {
    "name": "Emma",
    "age": 20
  },
  {
    "name": "Ray",
    "age": 45
  },
  {
    "name": "Celeste",
    "age": 33
  },
  {
    "name": "Stacy",
    "age": 53
  },
  {
    "name": "Katie",
    "age": 12
  },
  {
    "name": "Adrian",
    "age": 47
  }
]

Note: Be sure to type the closing parenthesis of the insert method!

db.people.insert([array])