CRUD en Mongo
Algunas operaciones CRUD que se pueden realizar en mongo:
insert
Ejemplo que inserta una nueva entrada en la tabla «fruit»
db.fruit.insert({«name»:»apple»,»color»:»red»,»shape»:»round»});
findOne
Con esta instrucción se trae una única entrada.
db.people.findOne( { «name»:»Jones» },{ «name»:true, «_id»:false } ); //En este ejemplo solo se muestra el campo name (el restode campos no se mostrarían y el _id hay que quitarlo aparte.).
Otro Ejemplo
db.scores.find({«type»:»essay», «score»:50},{«_id»:false, «student»:true});
Querying usando $gt y $lt (añadir ‘e’ para equal)
db.scores.find({«type»:»essay», «score»:{$gte:50,$lt:66}});
Inequalities en strings
El ejemplo devuelve todos los users cuyo name empieza por una letra mayor o igual que F y además esa letra es menor o igual que Q.
db.users.find( { name : { $gte : «F» , $lte : «Q» } } );
$regex, $exists, $type
Con regex se pueden usar ^$ para completar expresiones
exists – debe ser true o false
type – es para buscar por tipo de campo http://docs.mongodb.org/manual/reference/operator/type/
Ejemplo de uso:
db.users.find( { name:{$regex:»q»}, email:{$exists:true} } );
$or, $and, $in y $all
db.users.find( { $or:[ { name:{$regex:»q»}}, {email:{$exists:true} }]} );
db.scores.find( { $or: [ {score:{$lt:50}},{score:{$gt:90}} ] } );
querying inside arrays y queries with dot notation
db.catalog.find( { price : { $gt : 10000 } , «reviews.rating» : { $gte : 5 } } );
cursors
cur = db.people.find(); null;
cur.limit(5); null; (esto opcional. limita a 5)
cur.sort( {name:-1} ); null; (esto es opcional ordena por nombre ascendente)
cur.hasNext();
cur.next();
while(cur.hasNext()) printjson(cur.next());
Consulta que recupera los documentos de exámenes, ordenados por puntuación en orden descendente, pasando por alto los primeros 50 y que muestra sólo los próximos 20.
db.scores.find({ type : «exam» }).sort( {score:-1} ).skip(50).limit(20);
count
db.scores.count({type:»exam»});
¿Cómo se cuentan los documentos de la colección de partituras en que el tipo era «essay» y el puntaje fue mayor que 90?
db.scores.count({type:»essay», score:{$gt:90}});
update
Modifica el monbre y el salario de smith, quita el resto de propiedades
db.people.update({name:»smith»},{name:»thomspn», salary:5000});
$set
db.people.update({name:»smith»},{$set:{salary:5000}});
db.people.update({name:»smith»},{$inc:{salary:1}});
db.users.update({‘username’:’splunker’},{$set:{‘country’:’RU’}});
$unset
db.users.update({‘username’:’splunker’},{$unset:{‘country’:’RU’}});
Consulta de actualización que quitará intereses en el siguiente documento en los usuarios de colección. La clave principal es nombre de usuario.
db.users.update({‘username’:’jimmy’},{$unset:{‘interests’:1}});
$push, $pop, $pull, $pushAll, $pullAll, $addToSet
Supongamos que tenemos el siguiente documento en su colección de amigos:
{ _id : «Mike», interests : [ «chess», «botany» ] }
¿Cuál será el resultado de las siguientes actualizaciones?
db.friends.update( { _id : «Mike» }, { $push : { interests : «skydiving» } } );
db.friends.update( { _id : «Mike» }, { $pop : { interests : -1 } } );
db.friends.update( { _id : «Mike» }, { $addToSet : { interests : «skydiving» } } );
db.friends.update( { _id : «Mike» }, { $pushAll: { interests : [ «skydiving» , «skiing» ] } } );
Resultado:
{ _id : «Mike» , «interests» : [ «botany», «skydiving», «skydiving», «skiing» ] }
multi-update
db.people.update({name:»smith»},{$set:{salary:5000},{multi:true}});
¿Cómo dar a cada registro cuyo puntaje fue inferior al 70 un extra de 20 puntos?
db.scores.update({score:{$lt:70}},{$inc:{score:20}},{multi:true});
Removing data
db.scores.remove({score:{$lt:60}});
db.people.remove();
db.people.drop();
getLastError
db.runCommand( {getLastError:1} );
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places