# <center><i class="fa fa-edit"></i> Navigating MongoDB: Importing, Exporting, Querying Data </center>
###### tags: `Internship`
:::info
**Goal:**
To gain a basic understanding of MongoDB fundamentals. Focus on commands and navigation.
- [x] Basics of MongoDB
**Resources:**
[MongoDB Basics Online Course](https://university.mongodb.com/courses/M001/about)
[MongoDB 常用Query指令](/b2Y7lgR1RaeQyMHp9RGHdQ)
[Database Commands](https://www.mongodb.com/docs/manual/reference/command/)
:::
## Overview
- Structured way to store and access data
- No SQL database
- Does not use legacy approach of related tables of data (now rows and cols)
- Collection of documents
**Documents**
- A way to organize and store data as a set of field-value pairs
`<field> : <value> `
- Field: unique identifier for a datapoint
- Value: data related to a given identifier
- Collection: organized store of documents in MongoDB, usually with common fields between documents. There can be many collections per database and many documents per collection
**MongoDB Atlas**
- Replica Set: a few connected machines that store the same data to ensure that if something happens to one of the machines the data will remain intact
- Instance: a single machine locally or in the cloud, running a certain software, in our case it is the MongoDB database
- Cluster: group of servers that store your data
### Commands
:::warning
name of new collection = example
:::
Creating a new collection
```
db.createCollection("example");
```
Adding data to a collection
```
db.example.insert({
"field1": "value1"
'field2': 'value2'
field3: 'value3'
field4 "value4"
})
```
To find data
```
db.example.find()
```
To find and format data simultaneously
```
db.example.find().pretty()
```
Updating the document - existing parameters
```
db.example.update(
{field1: 'value1'},
{$set:{field1: 'newvalue1'}})
```
Updating the document - adding new parameters
```
db.example.update(
{field1: 'newvalue1'},
{$set:{field5: 'value5'}},
{$upsert: true})
```
Removing paramenters
```
db.example.update(
{field1: ''},
{$upsert: true})
```
Deleting the document
```
db.example.delete()
```
Couting the number of documents
```
db.example.count()
```
**In Robo 3T**
- Sorting data in chronological order (oldest to newest)
>`db.getCollection('raw_data').find({}).sort({"Timming":1})`
- Modifying one field
> `(db.raw_data.update({'Dispenser':'EE_06_01'},{$set:{'Dispenser':'EE0601'}},)`
- Modifying multiple fields simultaneously
> `db.raw_data.update({'Dispenser':'EE_06_01'},{$set:{'Dispenser':'EE0601'}},{multi:true})`