//BASE DE DATOS DE PRUEBA db.users.insertMany([ { user:'@jonmircha', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test1', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test2', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test3', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test4', user_date:ISODate(), email: '[email protected]', password: 'my password' } ]) ++++++++++++++++++++++++++++++++++++ //ACTUALIZACIÓN EN MASA db.users.update( {user: '@test1'}, { $set:{ age : 17, balance: 10, hobbies: ['peliculas','serias','comics'] } } ) db.users.update( {user: '@test2'}, { $set:{ age : 25, balance: 50, hobbies: ['nadar','cocinar','dormir'] } } ) db.users.update( {user: '@test3'}, { $set:{ age : 50, balance: 500, hobbies: ['peliculas','cocinar','leer'] } } ) db.users.update( {user: '@test4'}, { $set:{ age : 27, balance: 210, hobbies: ['hacer ejercicios','series','dormir'] } } ) +++++++++++++++++++++++++++++++++++++++++++++++++++++ COMANDOS MONGO DATABASE db.alumnos.drop() db.dropDatabase() use edteam db.users.insert({msg:'Hola Mongo'}) show dbs //obtenr los resultados db.getCollection('users').find({}) db.().find().pretty //encontar un documento en particulas db.users.find({name:"apis-cli"}) //para eliminar un documento en particular db.users.remove({name:"apis-cli"}) //eliminar toda la colleccion db.users.remove({}) //fecha ISODate() new Date() //ambas dan el mismo formato de fecha //INGRESANDO DATOS db.users.insert({ user:'@jonmircha', user_date:ISODate(), email: '[email protected]', password: 'my password' }) //INSETANDO MUCHAS DATOS A LA VEZ db.users.insertMany([ { user:'@jonmircha', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test1', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test2', user_date:ISODate(), email: '[email protected]', password: 'my password' }, { user:'@test3', user_date:ISODate(), email: '[email protected]', password: 'my password' } ]) //MODIFICANDO EL _id QUE VIENE POR DEFECTO EN LOS DOCUMENTOS db.users.insert( { _id: '@test5' user:'@test5', user_date:ISODate(), email: '[email protected]', password: 'my password' }) //MODIFICANDO LOS LOS DOCUMENTOS db.users.update({user:'@test4'},{email:"test4.com4"}) db.users.update(obj.a modificar,obj.con la modificacion) //pero se truca solo con el dato que se modifica :"v //PARA MODIFICAR UN DOCUMENTO SIN truncar los demás datos db.users.update( {user:'@test4'}, { $set :{ email:"test4.4" } } ) //si no existe el elemeto a modificar crea uno nuevo db.users.update( {user:'@test1'}, { $set :{ web:"test1.com.pe" } } ) //en este caso creara uno nuevo llamdo web //QUITANDO UN ELEMENTO AUN DOCUMENTO UNSET (IMPORTANTE) db.users.update( {user:'@test1'}, { $Nset :{ web:"test1.com.pe" } } ) //PUSH MODIFICA O AGREGA UN ELEMENTO(lo convierte en arreglo) EN FORMATO DE UN ARREGLO db.users.update( {user:'@test1'}, { $push :{ web:"test1.com.pe" } } ) //PULL QUITA ELEMENTOS DE UN ELEMENTO GUARDADO COMO UN ARREGLO db.users.update( {user:'@test1'}, { $pull :{ web:"test1.com.pe" } } ) //AGREDAR O QUITAR EN VARIABLES NUMERICAS UNA CATIDAD DATA db.users.update( {user:'@test1'}, { $inc :{ saldo: -500 //IMPORTANTE EL SIMBOLO DE + } } ) //CUANOD TE EQUIVOCAS EN ESCRIBIR EL NOMBRE UN UNA VARIABLE ENT U DOCUMENTO LO PUEDES CAMBIAR CON rename db.users.update( {user:'@test1'}, { $rename :{ user_mane: 'user_name' } } ) //AGREGAR Y MODIFICAR MAS UN CONTENIDO db.users.update( {user:'@test1'}, { $set :{ bio : 'Biografia del Usuario' }, $inc: { saldo: +500 } } ) //MODIFICAR MUCHOS DOCUMENTOS O ACTUALIZARLOS db.users.updateMany( {}, { $set :{ bio : 'Biografia del Usuario' } } ) //ANTIGUAS VERSIONES ACTUAIZAN DE LA SIGUIENTE MANERA db.users.updateMany( {}, { $set :{ bio : 'Biografia del Usuario' } }, {multi: true} ) //SORT ORDENAR //de forma ascenndeste 1 descendente -1 //se puede cambiar _id por cualquier campo db.users.find().sort({ _id:1 }) //ORDENAR POR MAS DE UN PARAMETRO db.users.find().sort({ _id:1, user:1 }) //CONTAR ELEMENTOS db.users.find().count() //contar elemento de un campo en especial db.users.find({user:'@test2'}).count() //BUSQUEDA CON EXPRESIONES REGULARES db.users.find({email:/@gmail/}) //ver cuales tienen @gmail db.users.find({email:/^test/}) //cuantos empiezan con la palabra test db.users.find({email:/.com$/}) //que termine con .com db.users.find({email:/@gmail.com$/}) //los que terminan en @gmail.com &&PLUSSSS AÑADIENDO DATOS A LA BASE DE DATOS db.users.update( {user: '@jonnircha'}. { $set:{ user_name: { firt:'jonathan', last:'MirCha' } } } ) //CONSULTA CON NOTACIÓN DE PUNTO(cuando tienen más de un elemento) db.users.find({'user_name.first':'jonathan'}) //consulta por expresiones regulares db.users.find({'user_name.last':/Cha$/}) //que terminen con Cha db.users.find({'user_name.first':/^usu/}) //Cuando comienzan con usu //OPERADORES DE COMPARACIÓN //mayores a 25 después en el campo age db.users.find({ age: { $gt:25 } }) //mayores o iguales a 25 db.users.find({ age: { $gte:25 } }) //menor o igual db.users.find({ age: { $lte:25 } }) //OTROS OPERADORES: eq, ne(not equal) //CONSULTAS EN ARRAY //Documentos en donde los usuarios son peliculas (palabra in) db.users.find({ hobbies: { $in:['peliculas'] } }) //documentos donde haya por lo menos uno de los dos hobbies db.users.find({ hobbies: { $in:['hacer ejercicio', 'leer'] } }) //documentos que no tengan elementos db.users.find({ hobbies:{ $nin:['comics'] } }) //que no tenga mas de uno (funciona como un or basta que no tenga comics or peliculas) db.users.find({ hobbies:{ $nin:['comics', 'peliculas'] } }) //simulación de between de sql db.users.find({ balance:{ $gte: 50, //mayor o igual que 50 $lte: 200 //menor o igual que 200 } }) //combinacion de más de una consulta db.users.find({ balance:{ $gt: 100, $lte: 500 }, age: { $gt:18 } }) ++++++++++++++++++++++ db.users.find({ balance:{ $gte: 100, $lte: 500 }, age: { $gt:18 } hobbies: { $in: ['hacer ejercicio'] } }) =================================================== //OPERADORES LÓGICOS //la expresion que utiliza (expresiones regulares) se usa (not) //la expresion que no utiliza (expresiones regulars) se usa (nor) //cadenas de texto con comilla '..' se una nor //expresiones regulares entre slashs /.../ se una not //los documentos que no contengas jonmircha db.users.find({ user:{ $not: /jonmircha/ } }) //nor utilica un array para evaluar valores //traigame todos lo objeto en los que en su balance non tengan más de 100 db.users.find({ $nor:[ {balance: { $gt:100}} ] }) //cuandos se desea hacer varias negaciones(toma los dos como uno) db.users.find({ $nor:[ {balance: { $gt:100}}, {age: {$lte: 17}} ] }) //OR los documentos que cumplas con una de las condiciones db.users.find({ $or:[ {balance: { $gt:100}}, {age: {$lte: 17}} ] }) //AND QUE CUMPLA CON LAS DOS CONDICIONES db.users.find({ $and:[ {balance: { $gt:100}}, {age: {$gt: 17}} ] }) //OPERADORES COMPLEMENTARIOS TYPE(devuelve los documentos que exitan con el tipo) EXIST //pide todos los valores de AGE que coincidad con el tipo STRING db.users.find({ age: { $type:'string' } }) //pide todos los valores de AGE que coincidad con el tipo NUMERIC db.users.find({ age: { $type:'double' } }) //user_name en el ejemplo era un objeto (estaba entre {}) db.users.find({ user_name: { $type:'object' } }) //hobbies es un array db.users.find({ hobbies: { $type:'array' } }) //date db.users.find({ user_date: { $type:'date' } }) //OPREADOR EXITS //me devolveran los documento que tengan el atributo country db.users.find({ country: { $exists: true //IMPORTANTE } }) //me devolveran los documento que NO tengan el atributo country db.users.find({ country: { $exists: false //IMPORTANTE } }) ++++++++++++++++++++++++++++++++++++++ Actualización esporadica db.users.update( {user: '@jonmircha'}, { $set: { country: 'Mexico' } } ) ++++++++++++++++++++++++++++++++++++++ db.users.update( {user: '@jonmircha'}, { $set: { password: hex_md5('My Awesome P4ssWORd') } } ) ++++++++++++++++++++++++++++++++++++++ //OPERADOR WHERE //verificación de la contraseña db.users.find({ $where: function () { return (hex_md5('My Awesome P4ssWORd')) === this.password } }) //aclaración ecmascrip5 ecmascrip6 las arrowfunction(su contexto de this es el global en este caso users) //(encambio el contexto de ecmascrip5 iene el cotexto local el de los datos de users en este caso)