prj_js_mongodb
                                
                                
                                
                                    prj_js_mongodb copied to clipboard
                            
                            
                            
                        FAZT - MongoDB, Curso Practico Rápido, Desde Cero Para Iniciantes
Este repo: prj_js_mongodb
FAZT - MongoDB, Curso Practico Rápido, Desde Cero Para Iniciantes repo original
1 - Descargar mongo de: mongodb-win32-x86_64-2008plus-ssl-3.6.0-signed.msi
indice
- ventana de comandos,shell mongo
 - creando la bd misclientes
 - creando un usuario db.createUser()
 - Mongodb se divide en colecciones
 - Javascript Object Notation
 - El atributo _id (identificador único)
 - El 
ObjectId("somehash") - Bulk insert con arrays
 - Corrigiendo propiedad con typo lasName a lastName
 - Haciendo un UPDATE
 - Formateando find pretty()
 - Buscando por _Id con ObjectId(..)
 - $set - agregador de propiedad
 - $inc - incrementador
 - $unset - quita propiedad
 - upsert - flag, indica hacer update si no puede insert
 - $rename - renombra una propiedad
 - .remove() Eliminar un dato
 - justOne - flag, elimina tan solo uno
 - $or - Busquedas elaboradas
 - $gt - Mayor que
 - $lt - Menores que
 - Busqueda en datos anidados
 - $regex Busqueda por expresiones regulares
 - find().sort() Ordenación
 - find().count() Devuelve el n de documentos
 - find().limit(iN)
 - find().forEach()
 - Robomongo - Interfaz gráfica
 
comandos consola
+----------------------------------------------------+------------------------------------------------------------------------------------------------------------+
|                      comando                       |                                                   acción                                                   |
+----------------------------------------------------+------------------------------------------------------------------------------------------------------------+
| mongod                                             | inicia el servidor de mongodb, deja el servicio corriendo                                                  |
| mongo                                              | para ejecutar comandos de mongo, habilita el shell propio de mongo                                         |
| show dbs                                           | muestra las bases de datos, (como show databases en mysql)                                              |
| db                                                 | indica la base de datos a la que se ha conectado                                                           |
| use <nombrebd>                                     | cambia la conexión actual a la bd <nombrebd>                                                               |
| db.createUser()                                    | crea un usuario, muestra Successfully added user:<el json>                                                 |
| db.clientes.insert()                               | indica que <bd actual>.<coleccion>.<haz un isnert de>() seria como: INSERT INTO clientes (...) VALUES(...) |
| db.clientes.find()                                 | SELECT * FROM clientes                                                                                     |
| db.clientes.insert([...])                          | hace un bulk insert como INSERT INTO ... VALUES (...),(...)(...);                                          |
| db.clientes.find({firstName:"Isaac"})              | SELECT * FROM clientes WHERE firstName='Isaac'                                                             |
| db.clientes.update({.condicion.},{nuevos valores}) | UPDATE clientes SET nuevos valores WHERE condicion                                                         |
| db.clientes.find().pretty()                        | Muestra los datos formateados para mejor legibilidad                                                       |
| $set                                               | seria como un alter table de agregación de campo                                                           |
| $inc                                               | seria como una funcion preprogramada                                                                       |
| $unset                                             | seria como un alter table de eliminacion de campo                                                          |
| upsert                                             | Flag que indica que si no existe el registro lo inserta y si existe lo actualia                            |
| $rename                                            | alter table de un nombre de campo                                                                          |
| db.clientes.remove({condicion})                    | es como un DELETE FROM clientes WHERE <condición>                                                          |
| $or                                                | condicional OR                                                                                             |
| $regex                                             | Se podria entender como el LIKE                                                                            |
| find().sort()                                      | Es la ordenacion como hace ORDER BY, el -1 es el DESC                                                      |
| find().count()                                     | Es el COUNT(*)                                                                                             |
| find().limit(iN)                                   | Es el LIMIT                                                                                                |
| find().forEach()                                   |                                                                                                            |
+----------------------------------------------------+------------------------------------------------------------------------------------------------------------+
notas
- Al instalar mongo en windows no acaba, la barra de progreso se queda en la "u" de minutes.
 - Al ejecutar el comando 
mongod(arrancar el servicio) no se levantaba pq no encontraba la ruta c:\data\db. - Tampoco me ha instalado las variables de entorno, la he añadido a mano en c:<rutamongodb>\bin .
 - Creé la ruta y entonces se quedó a la escucha por el puerto: 27017.
 - Al conectarse a mongo por defecto se conecta a una base por defecto.
 show dbsme muestra 3 bd con tamaño 0: admin,config y local.dbme muestra test.use misclientessme muestra switched to db misclientes.- Al crear una bd 
misclientes, por ejemplo, con >use misclientes. Mongo no crea directamente la bd hasta que se inserte al menos un registro (documento) - Mongo crea un id único de tipo hash en cada colección, lo genera en el atributo 
_id"_id" : ObjectId("5a2828c26ad9877fa8c09d56"), sería como la clave principal - Para buscar un registro por id se debe utilizar ObjectId de lo contrario lo entendería como un string común
 $setes un modificador que permite agregar una propiedad a un dato$incsirve para incrementar un atributo tipo entero, para decrementar se usa -- Buscando 'mongodb gui encontraremos interfaces gráficas'
 
errores
Al arrancar mongod:
Failed to initialize Performance Counters for FTDC: WindowsPdhError: PdhExpandCounterPathW failed with 'El objeto especificado no se encontró en el equipo.' for counter '\Memory\Available
Bytes'
Al lanzar el shell con mongo:
Error loading history file: FileOpenFailed: Unable to fopen() file C:\Users\<miusuario>/.dbshell: El sistema no puede encontrar el archivo especificado.