Aquesta és una revisió antiga del document
Chapter 2 : The MongoDB Query Language + Atlas
CRUD
- Create
- Read
- Update
- Delete
Installing the mongo Shell
Compass no cobre toda las opciones que da MongoDB
windows
- download center
- instalar MongoDB Server versión enterprise (soporte SSL?) para acceder a Atlas Cluster
c:\Program Files\MongoDB\Server\3.4mongo –nodb→quit()
osx/linux
- descargar
- modificar path
conexión
mongo "mongodb://cluster0-shard-00-00-jxeqq.mongodb.net:27017,cluster0-shard-00-01-jxeqq.mongodb.net:27017,cluster0-shard-00-02-jxeqq.mongodb.net:27017/test?replicaSet=Cluster0-shard-0" --authenticationDatabase admin --ssl --username m001-student --password m001-mongodb-basics
- cluster, le indicamos todos los servers
- test es la DB a la que le indicamos que queremos conectar, la iremos cambiando, por ejemplo: 100YWeatherSmall
use videoshow collectionsdb.movies.find().pretty()
Lab2
- crear cuenta en Atlas
- creación cluster en AWS (free tier)
- settings
- project name: *M001*
- Security
- IP Whitelist → Allow access from anywhere
- MongoDB Users → new user
- user: m001-student
- pass: m001-mongodb-basics
Connecting to your sandbox cluster from mongo shell
- desde Atlas GUI, Overview → Connect
- usar mongodb-shell connection
- v3.4+
mongo "mongodb://sandbox-shard-00-00-cab0l.mongodb.net:27017,sandbox-shard-00-01-cab0l.mongodb.net:27017,sandbox-shard-00-02-cab0l.mongodb.net:27017/test?replicaSet=Sandbox-shard-0" --ssl --authenticationDatabase admin --username m001-student --password m001-mongodb-basics
Loading data into your sandbox cluster
show dbs- descargar datos de ejemplo y cargar en mi cluster
load(«loadMovieDetailsDataset.js»)
Connecting to your sandbox cluster from Compass
- Desde Atlas, y en modo simplificado, identificar al servidor primario de nuestro cluster
- crear una nueva conexión, guardar como favorito
Creating Documents
- create documents = inserts
insertOne()
desde Compass:
- crear nueva colección
- insertar nuevo documento
desde mongodb-shell:
db→ database en usodb.moviesScratch.insertOne({title:"Star Trek II: Thw Wrath of man", year: 1982, imdb: "TT0084726"})
- creará la colección si esta no existiese
- todo documento de una colección ha de tener un identificador único: _id
- si nosotros no se lo creamos, se creará por nosotros
db.moviesScratch.insertOne({_id: "tt0084726", title:"Star Trek II: Thw Wrath of man", year: 1982, imdb: "TT0084726"})
- no conviene mezclar en una colección diferentes tipos de _id:
insertMany()
- en lugar de pasar un objeto {…} le pasaremos un array [ {…},{…},…,{…}]
db.moviesScratch.insertMany( [ { "_id" : "tt0084726", "title" : "Star Trek II: The Wrath of Khan", "year" : 1982, "type" : "movie" }, { "_id" : "tt0796366", "title" : "Star Trek", "year" : 2009, "type" : "movie" }, { "_id" : "tt0084726", "title" : "Star Trek II: The Wrath of Khan", "year" : 1982, "type" : "movie" }, { "_id" : "tt1408101", "title" : "Star Trek Into Darkness", "year" : 2013, "type" : "movie" }, { "_id" : "tt0117731", "title" : "Star Trek: First Contact", "year" : 1996, "type" : "movie" } ] );
- por defecto, insertMany() trabaja de manera «ordenada», podemos especificarle que no es así añadiendo un segundo parámetro al comando: {[…],{«ordered»: false}}
- si intentamos introducir 2 documentos con el mismo _id dará un error y dejará de insertar documentos.
- si le hemos indicado el ordered: false, no insertará aquellos que den errores, pero continuará insertando el resto


