Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
| info:cursos:mongodbuniversity:m001:cap2 [10/12/2018 13:45] – [2.7 Array Fields] mate | info:cursos:mongodbuniversity:m001:cap2 [14/12/2018 10:21] (actual) – [conexión] mate | ||
|---|---|---|---|
| Línia 18: | Línia 18: | ||
| * modificar path | * modificar path | ||
| - | === conexión | + | === conexión |
| <code bash> | <code bash> | ||
| mongo " | mongo " | ||
| Línia 32: | Línia 32: | ||
| * creación cluster en AWS (free tier) | * creación cluster en AWS (free tier) | ||
| * settings | * settings | ||
| - | * project name: *M001* | + | * project name: **M001** |
| * Security | * Security | ||
| * IP Whitelist -> Allow access from anywhere | * IP Whitelist -> Allow access from anywhere | ||
| Línia 47: | Línia 47: | ||
| * descargar datos de ejemplo y cargar en mi cluster | * descargar datos de ejemplo y cargar en mi cluster | ||
| * '' | * '' | ||
| + | {{ : | ||
| == Connecting to your sandbox cluster from Compass | == Connecting to your sandbox cluster from Compass | ||
| Línia 114: | Línia 115: | ||
| * si intentamos introducir 2 documentos con el mismo **_id** dará un error y dejará de insertar documentos. | * 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 | * si le hemos indicado el **ordered: false**, no insertará aquellos que den errores, pero continuará insertando el resto | ||
| + | {{ : | ||
| == Lab 2.2 | == Lab 2.2 | ||
| Línia 174: | Línia 176: | ||
| | | ||
| == Update Operators | == Update Operators | ||
| + | For update operations, update operators specify how to modify specific fields in documents matching a filter. Fields may be added, deleted, or have their value changed in some way. Update operators define what modifications to make with respect to one or more fields in matching documents. | ||
| + | * $set : añade campos | ||
| + | * $unset : elimina campos | ||
| + | * $min | ||
| + | * $max | ||
| + | * $inc : incrementa el valor del campo/ | ||
| + | * $addToSet : añade elementos a un array (si no existen previamente) | ||
| + | * $pop : elimina el primer / último elemento de un array | ||
| + | * $pullAll : elimina los valores que coíncidan | ||
| + | * $pull : elimina el campo que coincida | ||
| + | * $push: añade un array de elementos< | ||
| + | let review = [ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ].join() | ||
| + | db.movieDetails.updateOne({ | ||
| + | title: "the martian" | ||
| + | },{ | ||
| + | $push: { | ||
| + | reviews: { | ||
| + | rating: 4.5, | ||
| + | reviewer: " | ||
| + | text: review | ||
| + | } | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | el documento ahora tendrá un campo llamado **reviews** del tipo array con un objeto que contendrá los campos indicados (rating, | ||
| + | |||
| + | <code javascript> | ||
| + | let review = [ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ].join() | ||
| + | db.movieDetails.updateOne({ | ||
| + | title: "the martian" | ||
| + | },{ | ||
| + | $push: { | ||
| + | reviews: | ||
| + | $each: [{ | ||
| + | rating: 4.5, | ||
| + | reviewer: " | ||
| + | text: review | ||
| + | },{ | ||
| + | rating: 4.5, | ||
| + | reviewer: " | ||
| + | text: review | ||
| + | },{ | ||
| + | rating: 4.5, | ||
| + | reviewer: " | ||
| + | text: review | ||
| + | }] | ||
| + | } | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | añade tantos objetos en el array como hay | ||
| + | |||
| + | * ... otros en la página de MongoDB : [[https:// | ||
| + | |||
| + | == UpdateMany() | ||
| + | * modifica todos los documentos que cumplen el registro | ||
| + | <code javascript> | ||
| + | db.movieDetails.updateMany({ | ||
| + | rated: null | ||
| + | },{ | ||
| + | $unset: { | ||
| + | rated: "" | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | elimina el campo rated = null de todos los documentos | ||
| + | |||
| + | == Upserts | ||
| + | * crear nuevos documentos | ||
| + | <code javascript> | ||
| + | let detail={[...]} | ||
| + | |||
| + | db.movieDetails.updateOne({ | ||
| + | " | ||
| + | },{ | ||
| + | $set: detail | ||
| + | },{ | ||
| + | upsert: true | ||
| + | }) | ||
| + | </ | ||
| + | * **detail** contiene todos los campos del documento | ||
| + | * **$set** intenta actualizar el documento | ||
| + | * **upsert=true** inserta si no existe el documento previamente (que cumpla el criterio del primer parámetro) | ||
| + | |||
| + | == 2.14 replaceOne() | ||
| + | * para aplicaciones en las que es más fácil reemplazar todo el documento | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * con todos estos cambios sobre el documento, hacemos un replaceOne() para actualizarlo todo | ||
| + | <code javascript> | ||
| + | db.movieDetails.replaceOne({" | ||
| + | </ | ||
| + | |||
| + | == Delete | ||
| + | * deleteOne() | ||
| + | * deleteMany() | ||
| + | |||
| + | {{ : | ||
| + | {{ : | ||