MongoDB
Q1. Which command adds members to the replica set from MongoDB shell?
-
rs.add("<hostname>")
-
replicaSetAdd("<hostname>")
-
rs.insert("<hostname>")
-
replica.add("<hostname>")
Q2. Which MongoDB shell command should you use to back up a database?
- restore
- backup
- mongobackup
- mongodump
Q3. Which shell query displays all citizens with an age greater than or equal to 21?
-
db.citizens.select('WHERE age >= 21')
-
db.citizens.where('age >= 21')
-
db.citizens.find('WHERE age >= 21')
-
db.citizens.find({age: {$gte: 21}})
Q4. What does a MongoDB collection consist of?
- data
- documents
- fields
- rows
Q5. Given an ObjectId in _id
, how do you get the time it was created?
-
getDateTime(_id)
-
_id.createDate()
-
_id.getTimestamp()
-
_id.getDateTime()
Q6. Given a cursor named myCursor, which command returns a boolean value?
- myCursor.hasNext()
- myCursor.sort()
- myCursor.next()
- myCursor.find()
Q7. Which command returns a specific document in the user's collection?
-
db.users.find({_id: 1})
-
db.users.seek({_id: 1})
-
db.users.query({_id: 1})
-
db.query.users({_id: 1})
Q8. To import a JSON array into Mongo, what flags are needed with MongoDBimport?
-
--type jsonArray
-
--json
-
--type json
-
--jsonArray
Q9. Choose the shell command that connects to a MongoDB database.
- mongo
- mongod
- mongoconnect
- dbconnect
Q10. In the MongoDB shell, how can you tell if an index was used with a query?
- db.customers.find({lastName: 'smith'}).explain()
- db.customers.find({lastName: 'smith'}).perf()
- db.customers.find({lastName: 'smith'}).plan()
- db.customers.find({lastName: 'smith'}).usedIndex()
Q11. Suppose your aggregation pipeline terminated with an exception referring to exceeded memory limit. What is the best way to resolve the issue?
- Set useMemory to twice amount indicated in exception.
- Switch a 64 bit instance of MongoDB.
- Increase the memory of the MongoDB server.
- Set allowDiskUse to true.
Q12. What is the recommended way to delete a user?
- db.deleteUser("user")
- db.removeUser("user") DEPRECATED
- db.remove("user")
- db.dropUser("user")
Q13. What the primary database in a replica set fails, when does failover begin?
- once the primary has been down for 10 minutes
- once the primary reboots
- immediately
- after the administrator reboots the primary
Q14. What is the correct option to set up Kerberos when starting MongoDBd?
-
--setParameter authenticationMechanisms=GSSAPI
-
--setAuthentication=GSSAPI
-
--setParam auth=K
-
--setAuth method=Kerberos
Q15. What is the purpose of an arbiter in a replica set?
- It monitors replica set and sends email in case of failure
- It casts the tie-breaking vote in an election.
- It holds a backup copy of the database.
- It reboots the failed server.
Q16. You want to know how many types of items you have in each category. Which query does this?
-
db.product.group({_id: "$category", count: {$sum:1}})
-
db.product.aggregate($sum: {_id: "$category", count: {$group:1}})
-
db.product.aggregate($group: {_id: "$category", count: {$sum:1}})
-
db.product.aggregate($count: {_id: "$category", count: {$group:1}})
Q17. To restrict the number of records coming back from a query, which command should you use?
- take
- limit
- max
- skip
Q18. You have a collection named restaurants with the geographical information stored in the location property, how do you create a geospatial index on it?
-
db.restaurants.CreateIndex({location: "2dsphere"})
-
db.restaurants.geospatial({location: "2dsphere"})
-
db.restaurants.CreateIndex("2dsphere":"location")
-
db.restaurants.CreateIndex({geospatial: "location"})
Q19. How do you find documents with a matching item in an embedded array?
-
db.customers.findmatch ({"jobs":"secretary"})
-
db.customers.find ({"jobs:secretary"})
-
db.customers.find ({"jobs":["secretary"]})
-
db.customers.find ({"jobs":"secretary"})
Q20. Which query bypasses the first 5 customers and returns the next 10?
-
db.customers.find({}, {skip: 5, limit: 10})
-
db.customers.find({}.page(5).take(10))
-
db.customers.find({}).skip(5).take(10)
-
db.customers.find({}).skip(5).limit(10)
Q21. How do you create a text index?
-
db.customers.createIndex({firstName, lastName})
-
db.customers.createTextIndex({firstName, lastName})
-
db.customers.createIndex({firstName: "text", lastName: "text"})
-
db.customers.createText({firstName: 1, lastName: 1})
Q22. Assuming you have customers collection with a firstName and lastName field, which is the correct MongoDB shell command to create an index on lastName, then firstName both ascending?
-
db.customers.createIndex("lastName, firstName, ASC")
-
db.customers.addIndex({lastName:"ASC", firstName: "ASC"})
-
db.customers.newIndex({lastName:1, firstName:1})
-
db.customers.createIndex({lastName:1, firstName: 1})
Q23. One of the documents in your collection has an _id based upon an older database design and you want to change it. You write an update command to find the document and replace the _id but the _id isn't changed. How should you fix the issue?
- Set the replace option to true.
- Use the replaceOne() command instead.
- You can't. Once set, the _id field cannot be changed.
- Use the updateOne() command instead.
Q24. A compound index allows you to _ ?
- Calculate interest quickly.
- Accomplish nothing, since compound indexes aren't allowed in Mongo.
- Use more than one field per index.
- Combine fields in different collations.
Q25. Why are ad-hoc queries useful?
- They do not have to use the same operators.
- You do not need to structure the database to support them.
- They autogenerate reports.
- They run faster than indexed queries.
Q26. How often do the members of a replica set send heartbeats to each other?
- every 2 minutes
- every 5 seconds
- every 2 seconds
- every 10 seconds
Q27. Which command returns all of the documents in the customers collection?
-
db.customers.all();
-
db.find().customers();
-
db.customers.find();
-
db.customers.show();
Q28. Given a cursor named myCursor, pointing to the customers collection, how to you get basic info about it?
-
myCursor.stats()
-
myCursor.dump()
-
myCursor.info()
-
myCursor.explain()
Q29. What is true about indexes?
- They speed up read access while slowing down writes.
- They secure the database from intruders.
- They speed up reads and writes.
- They speed up write access while slowing down reads.
Q30. What is the preferred format to store geospatial data in MongoDB?
- Latitude, longitude
- XML
- GeoJSON
- BSON
Q31. Which programming language is used to write MongoDB queries? (Alternative: In the MongoDB shell, what programming language is used to make queries?)
- Python
- JavaScript
- SQL
- TypeScript
Q32. You have two text fields in your document and you'd like both to be quickly searchable. What should you do?
- Create a text index on each field.
- MongoDB is not able to do this.
- Create a compound text index using both fields.
- Create a text index on one field and a single field index on the other.
Q33. To import a CSV file into MongoDB, which command should you issue?
- mongorestore
- mongoi
- upload
- mongoimport
Q34. In an MongoDB mapReduce command, the reduce function should _.
- access the database
- be called only when the key has a single value
- access the database only to perform read operations
- not access the data
Q35. On a newly created collection, which field will have an index?
- the name field
- the ObjectId field
- the
_id
field - no field will have an index
Q36. You have a collection of thousands of students. You'd like to return the second set of 20 documents from the sorted collection. What is the proper order in which to apply the operations?
- limit, skip, sort
- sort, limit, skip
- limit, sort, skip
- sort, skip, limit
Q37. You would like the stats() command to return kilobytes instead of bytes. Which command should you run?
-
db.vehicle.stats(1024)
-
db.vehicle.stats("kilobytes")
-
db.vehicle.stats(true)
-
db.vehicle.stats("kb")
Q38. You want to modify an existing index. What is the best way to do this?
- Use the
reIndex()
command to modify the index. - Delete the original index and create a new index.
- Call the
createIndex()
command with the update option. - Use the
updateIndex()
command.
Q39. You need to delete the index you created on the description field. Which command will accomplish this?
-
db.vehicle.dropIndex("description_text")
-
db.vehicle.dropIndex({"description":"text"})
-
db.vehicle.removeIndex({"description":"text"})
-
db.vehicle.removeIndex("description_text")
Q40. You would like to know how many different categories you have. Which query will best get the job done?
-
db.vehicle.distinct("category")
-
db.vehicle.unique("category")
-
db.vehicle.distinct("category").count()
-
db.vehicle.distinct("category").length
Q41. From the MongoDB shell, how do you create a new document in the customers collection?
-
db.customers.add({name: "Bob"})
-
db.customers.save({name: "Bob"})
-
db.customers.create({name: "Bob"})
-
db.customers.new({name: "Bob"})
Q42. Which field is required of all MongoDB documents?
-
_id
-
_name
- ObjectId
- mongoDB is schema-less so no field is required
Q43. A MongoDB instance has at least what three files?
- data, namespace, and journal
- namespace, journal, and log
- journal, data, and database
- data, log, and journal
Q44. You'd like a set of documents to be returned in last name, ascending order. Which query will accomplish this?
-
db.persons.find().sort({lastName: -1}}
-
db.persons.find().sort({lastName: 1}}
-
db.persons.find().sort({lastName: ascending}}
-
db.persons.find().sort({lastName: $asc}}
Q45. What is NOT a standard role in MongoDB?
- restore
- read/write
- dbadmin
- delete collections
Q46. Which MongoDB shell command deletes a single document?
-
db.customers.delete({_id: 1});
-
db.customers.drop({_id: 1});
-
db.drop.customers({_id: 1});
-
db.customers.remove({_id: 1});
Q47. Using the MongoDB shell, how do you remove the customer collection and its indexes?
-
db.customers.remove({}).indexes();
-
db.customers.remove({});
-
db.customers.drop();
-
db.customers.delete();
Q48. By default, applications direct their read operations to which member of the replica set?
- primary
- arbiter
- secondary
- backup
Q49. You need to get the names of all the indexes on your current collection. What is the best way to accomplish this?
-
db.people.getName();
-
db.people.reIndex({names: 1});
-
db.people.getIndexKeys();
-
db.people.getIndexes();
Q50. You are going to do a series of updates to multiple records. You find setting the multi option of the update() command too tiresome. What should you do instead?
- Use the replaceMany() command instead
- Use the updateMulti() command instead
- Use the updateMany() command instead
- Set the global multi option to True
Q51. To cleanly shut down MongoDB, what command should you use from the MongoDB shell?
- quit()
- exit()
- db.shutdownServer()
- db.shutdown()
Q52. Given a customer collection which includes fields for gender and city, which aggregate pipeline shows the number of female customers in each city? (Alternative: How can you view the execution performance statistics for a query?)
-
db.members.aggregate([ {$match: {gender: "Female"}}, {$group: {_id: {city: "$city"}, number: {$sum: 1}}}, {$sort :{number: -1}}])
-
db.members.find({$match: {gender: "Female"}}, {$group: {_id: {city: "$city"}, number: {$sum: 1}}}.$sort ({number: -1})
-
db.members.find([ {$match: {gender: "Female"}}, {$group: {_id: {city: "$city"}, number: {$sum: 1}}}, {$sort :{number: -1}}])
-
db.members.aggregate([ {$match: {gender: "Female"}}, {$sort :{number: -1}}])
Q53. When no parameters are passed to explain()
, what mode does it run in?
- wireTiger mode
- executionStats mode
- queryPlanner mode
- allPlansExecution mode
Q54. What is the correct query to find all of the people who have a home phone number defined?
-
db.person.find({exists: 'homePhone'});
-
db.person.exists({homePhone: true});
-
db.person.find({homePhone: {$exists: true}});
-
db.person.has('homePhone');
Q55. Which file in the MongoDB directly holds the MongoDB daemon?
- mongodb
- mongo-daemon
- daemon
- mongod
Q56. You have just secured your previously unsecured MongoDB server, but the server is still not requiring authentication. What is the best option?
- Restart the
mongod
process. - Issue the
secure()
command. - Issue the
mongoimport
command. - Issue the
authenticate()
command.
Q57. What is the most accurate statement regarding MongoDB and ad hoc queries?
- MongoDB does not allow ad hoc queries; all queries require an index.
- Ad hoc queries are allowed only in the paid version.
- Ad hoc queries are allowed only through the ad hoc command.
- MongoDB allows ad hoc queries.
Q58. In MongoDB, what does a projection do?
- allows you to do a calculation on the results
- allows you to run queries on the server
- allows you to select which fields should be in the return data
- allows you to format the results for a display
Q59. To remove a database and all of its records from MongoDB, what operator should you use?
-
dropDatabase()
-
removeAll()
-
clear()
-
deleteDatabase()
Q60. What option can be passed to start the MongoDB shell without connecting to a database?
-
-db=null
-
--shell-only
-
--free
-
-nodb
Q61. How can you improve the appearance of the output JSON that contains the _id
?
-
Use db.collection.set({$_id:pretty})
-
Create a second index
-
Use db.collection.format(numeric)
-
Use $_id = value
Q62. What happens to a Replica set oplog if it runs out of memory?
-
The oplog will be saved on one of the secondary servers.
-
The oplog is capped collection and can't run out of memory
-
The MongoDB instance will fail
-
The oplog will stop recording logging information
Q63. MongoDB ships with a variety of files. Which file runs the MongoDB shell?
- mongo
- mongo-s
- shell
- mongo-shell
Q64. How can you view the execution performance statistics for a query?
-
db.performance.members.aggregate([ {$match: {gender: "Female"}}, {$group: {_id:{city:"$city"}, number: {$sum: 1}}}, {$sort : {number: -1}}])
-
db.members.aggregate([ {$match: {gender: "Female"}}, {$group: {_id: {city: "$city"}, number:{$sum:1}}}, {$sort: {number:-1}}]).explain("executionStats")
-
db.members.aggregate([ {$match: {gender: "Female"}}, {$group:{_id: {city: "$city"}, number: {$sum: 1}}}, {$sort: {number: -1}}]).explain()
-
db.members.aggregate([ {$match: {gender: """Female"""}}, {$group: {_id: {city: """$city"""}, number: {$sum:1}}}, {$sort: {number: -1}}]).number()
Q65. From the MongoDB shell, how do you execute a JavaScript file named list.js?
- node 'list.js'
- exec('list.js)
- run('list.js)
- load('list.js)
Q66. Which MongoDB shell query will sort the customer's collection by name descending?
- db.customers.sort({name: -1}.find({})
- db.customers.sort({name: -1})
- db.customers.find({}).sort({name: -1})
- db.customers.find({}).sort({name: 1})
Q67. Suppose you are using the mongoimport command to import personnel data and there is a unique index on the email field. What happens when there are duplicate emails in the import?
- The import command aborts without importing any records.
- The import command imports records upto but not including the record, and then aborts.
- The import command doesn't import the bad document but does import the rest.
- The import command prompts you to correct the bad record.
Q68. You have a collection with millions of documents. Each time you attempt to sort. MongoDB runs out of memory. What might help?
- Use the purge operator before the sort.
- Return the entire collection and sort on the client.
- Pass the --more-memory option.
- Create an index on the field you are sorting.
Q69. You need to be able to quickly find a word in a text field. What should you do?
- Create a text index on the field and do a $text Query.
- Create an single field index in descending order, and do a query for the word.
- Do a $text query.
- Create a $regex on the fields, and do a $regex query.