Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sanko

#241


Buenas amantes de Django y de las bases de datos no relacionales.
Muchos desarrolladores Django aman las BD's NoSQL y como los developers de Djangoproject piensan en nosotros nos han dado la oportunidad de facilitarnos la vida...

En un antiguo articulo explicamos sobre Pymongo lo qué nos permitia manejar MongoDB desde nuestro python...
En este articulo vamos a crear un entorno de trabajo para poder jugar con Django y MongoDB y en el próximo articulo programaremos algo...

- ¿Qué necesitaremos? :


· MongoDB
· Python
· Django (en la versión 1.3)
· Django-norel
· Django Toolbox
· Django MongoDB - Engine

Por si alguien aun no tiene mucha idea sobre estos pues hablaremos un poco de ellos :

MongoDB : No necesita presentación pues ya tenemos un articulo sobre el

Python : Si no lo sabeís pegaros un tiro.

Django 1.3 : Django es un framework web realizado en Python , para poder trabajar con BD's no relacionales debemos de tener la versión 1.3 puesto que las siguientes no son compatibles con Django-Norel

Django - Norel : Implementa a Django 1.3 lo necesario para trabajar con bases de datos no relacionales.

Django - Toolbox : Una seríe de útiles para trabajar con no relacionales en Django.

MongoDB - Engine : Engine que MongoDB nos proporciona para usar MongoDB como Backend en nuestros proyectos Django

Ahora veremos como instalar Django 1.3, Django-Norel, Django-Toolbox y MongoDB-Engine.


Pero antes requerimos de pip- Python , Git y de Mercurial para realizar la instalación de estos :

- Instalar python-pip:
Código: bash
sudo apt-get install python-pip


- Instalar Git :
Código: bash
sudo apt-get install git


- Instalar Mercurial :
Código: bash
sudo apt-get install mercurial


Una vez tengamos Git , python - pip y Mercurial procederemos a instalar lo dicho :



- Instalando Django 1.3 :
Descargamos Django 1.3 desde You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Nos movemos a la carpeta en la que se nos descargo Django y escribimos :

Código: bash
tar xzvf Django-1.3.5.tar.gz
cd Django-1.3.5
sudo python setup.py install


- Instalando Django Norel :
Aquí ya hacemos uso de mercurial para clonar el repo, escribimos :

Código: bash
pip install hg+https://bitbucket.org/wkornewald/django-nonrel


A muchos les soltará un error por permisos , así que no olviden ponerse como root por si acaso.

- Instalando Django Toolbox :
Escribimos en terminal de la misma manera :

Código: bash
pip install hg+https://bitbucket.org/wkornewald/djangotoolbox


Y por último :

- Instalando Django MongoDB-Engine :
Aquí ya hacemos uso de git para instalar la engine , escribimos en terminal :

Código: bash
pip install git+https://github.com/django-nonrel/mongodb-engine


Y esto sería todo lo necesario para poder usar MongoDB como Backend en nuestras aplicaciones en Django.

El próximo articulo trabajaremos ya sobre este entorno que hemos creado.
Saludos , Sanko.

#242
mmmm lo malo de hacer el QT con el designer es la basura que suelta...
Lo único que veo mal ahí es un error de tabulación en self.progressBar.setObjectName(_fromUtf8("progressBar"))

Aun así creo esta bastante más imcompleto y a mi no me deja ejecutarlo, que PyQT usas? osea version
#243
Presentaciones y cumpleaños / Re:ei nanos!
Enero 02, 2013, 09:40:15 PM
Bienvenido...
Yo te he visto presentarte por udt y demas... pero modder... en qué foro? me conozco todos los vecinos... xd
#244
Dudas y pedidos generales / Re:encontrar victimas
Diciembre 31, 2012, 06:16:15 PM
Mirate , antes de meterte a lammear como hicimos todos antes de aprender tu tienes la oportunidad de hacerlo bien ya que preguntaste y se te va a responder como es debido.

Eres nuevo , ok eres "nuevo", y es por eso que debes empezar desde abajo y sin prisa.

1.Conceptos
2.Teoría y Técnicas
3.Práctica

Entonces leete desde lo básico -> You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Loginç
y de ahí iras googleando y conociendo más a fondo el pentesting , explorando metaesploit(metaesploit para pentesters -> You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login)

No quieras ir rápido , elijete un buen lenguaje que te ayude a automatizar tus futuros proyectos (alguno de scripting te ira bien) y mientras vayas estudiando programación vete leyendote lo que te he recomendado.
Si, da pereza pero obtendras tu resultado si te formas adecuadamente.(en cuanto te pongas , si realmente te apasiona te absorvera la lectura)
No todo se consigue en un día.


PD: Nose porque me molesto en escribir estas parrafadas , luego todos acabaís igual , directos a los rats y a taringa.
Teneís la oportunidad de empezar bien y no empezar perdiendo el tiempo con malwaritos y vb6 como hicimos todos.
#245
Bienvenido man , quiero que sepas algo...
Una vez entres no podras salir , peor que la heroína XD
#246
Off Topic / Re:Compras en tiendas Chinas
Diciembre 29, 2012, 11:32:42 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
puede ser barato, pero el envio al pais sale el doble creo lol
gastos de envio free en la mayoria si sabes esperar(15-30 dias pero suele llegar al 15 mas menos ) , si no eres paciente te pueden clavar 20€ (1 o 2 dias)
#247
Off Topic / Re:Compras en tiendas Chinas
Diciembre 29, 2012, 08:32:01 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#248
Dudas y pedidos generales / Re:parecido a backtrack?
Diciembre 29, 2012, 08:03:49 PM
decae en la compatibilidad con hardware...
#249
Dudas y pedidos generales / Re:parecido a backtrack?
Diciembre 29, 2012, 07:25:06 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
gracias! probare.
No te decepcionará xd , ahora tal vez ande la cosa discutida pero de aqui a una versión o dos backtrack no tendra nada que hacer al lado de bugtraq
Why? BT ya deja de lado el tema de ser un sistema que pueda servir de base , bugtraq mantiene esas propiedades de ubuntu
#250
Ese tipo de vulnerabilidades pueden extenderse un monton... xD
una simple sqli no puede ser a veces tan simple y ser muuuuy enrevesada...

Ahora más formal , yo no soy programador PHP por lo que no soy digamos un super auditer porque no puedo ver errores en códigos PHP...
Pero siempre te queda el sentido común... te pondre un ejemplo :

Indiferentemente de el lenguaje en el que este la web , sabemos que usa mysql( es un ejemplo) , si usa mysql significa que SQL es nuestra manera de poder llegar a vulnerar el sitio...

recuerdo cuando andaba leyendo el libro de django y vi algo asi :

Código: python
def user_contacts(request):
user = request.GET['username']
sql = "SELECT * FROM user_contacts WHERE username = '%s';"%username


Con esto lo que hacemos es enviar una consulta concatenando una variable "username" al formulario que realizara esa consulta...
Entonces que pasaría si nosotros en ese formulario escribimos -> 'OR 'a' = 'a' ??? .... EXACTO -> SELECT * FROM user_contacts WHERE username = '' OR 'a' = 'a';

Con todo este coñazo tan solo quiero llegar a estos puntos :
- Formate aunque sea básicamente en las bases de datos más usadas...(las mas usadas son SQL relacionales...)
- Formate en los fundamentos web , el envio de cabeceras , etc
- Usa tu sentido común

Y todo eso llegas a aprenderlo cuando estudias algún lenguaje para el desarrollo web , así que animate y elije uno y dale duro
   
#251
Dudas y pedidos generales / Re:Troyanos
Diciembre 26, 2012, 07:56:29 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Bueno no se muy bien donde preguntar esto como me movisteis el otro si me esquivoco cambiarmelo .

Miren mi problema es que cree un troyano y llevo ya unas 2 semanas y solo tengo 1 infectado y se conecta poquisimo.. y me gustaria saber alguna manera de como meterselo a otra gente si me podrian ayudar.

Un saludo.
spreaders , backdoorear servidores , troyinga.
#252
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
En este link explico  las medidas a tomar para que tu sistema Joomla sea un poco más seguro.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
No estan nada mal esas medidas , pero a parte de eso falsear el robots y chapar el htaccess es importante , en general puedes volver cualquier cms (conocidos por ser inseguros) bastante más seguro si tienes nociones básicas en el research de fallos.
#253
Feliz Navidad a todos! Pasenla buena en familia o no , lo importante es pasarla buena
#254
Limpio tema , pero si estoy de acuerdo en  quien hizo este payload anda algo tocao del tarro.
Una cosa es automatizar procesos y otro muy distinto que hagan todo por ti.

Reabierto.
#255
Python / Python + MongoDB = Pymongo
Diciembre 20, 2012, 11:12:49 PM
Bueno , no hace mucho publiqué una introducción sobre MongoDB con sus características , primeros pasos y demas.
Bien , pues hoy trataré sobre un tema que a muchos Pythoneros como yo les interesa.

MongoDB cuenta con unos drivers que soportan una gran variedad de lenguajes :

    C
    C++
    Erlang
    Haskell
    Java (and other JVM languages)
    Javascript
    .NET (C#, F#, PowerShell, ...)
    Node.js
    Perl
    PHP
    Python
    Ruby
    Scala

Para más información sobre los drivers : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Uno de los más recomendados a la hora de tratar con MongoDB desde python es "Pymongo".

Primero debemos instalar la libreria pymongo , en mi caso uso mint asi que:
Código: python
sudo apt-get install pymongo


Jugaremos con  los mismos comandos con pymongo que realizamos en la introducción a MongoDB :

- Conectaremos con la BD
- Veremos las BD's que tenemos creadas
- Veremos las colecciones que tenemos ya creadas
- Crearemos una nueva BD
- Crearemos  una nueva colección
- Insertaremos nuevos documentos
- Actualizaremos documentos
- Buscaremos documentos
- Borraremos documentos con remove y con drop


Y como petición especial (me enviarón la duda por MP) y ya que al parecer no puede esperar al próximo tutorial de MongoDB :

- Borraremos bases de datos

Bueno comenzemos importando pymongo :
Código: python
from pymongo import Connection


Creamos la conexión con la BD :
Código: python
conex = Connection('localhost') 


Ahí veís puse localhost por defecto porque la BD esta en nuestra PC y pymongo nos conecta con ella si le indicamos local pero ahi deberían de indicar el sitio de la BD y el puerto al que se conecta.

Bueno veamos las BD's que ya hay creadas :
conex.database_names()

Ahora creemos una BD nueva :

Código: python
db = conex.nombredb


Creamos una nueva colección :
Código: python
collect = db.coleccionnueva


Veamos que colecciones tenemos creadas :
Código: python
db.collection_names()


Insertemos un documento :
Código: python
collect.insert({"name":"sanko","twitter":"sankoSK"})


Actualizamos documentos con update():
Código: python
collect.update()


Vamos a realizar una busqueda de documentos :
Código: python
collect.find()


Borremos documentos con remove():
Código: python
collect.remove()


Vaciamos la colección (borramos todos los documentos) con drop():
Código: python
collect.drop()


Y ahora la petición especial , borrar bases de datos...


Aquí me explicaré un poquito más puesto que este comando es nuevo(No lo dimos en el post introductorio a MongoDB).
En MongoDB borrariamos la BD de la siguiente manera:

-Accedemos a la database
-Nos borramos


Código: python
use nuestrabd
db.dropDatabase()


Una vez aclarado esto , veamos como borrariamos la bd en pymongo:
Código: python
conex.drop_database('nombredatabase')


Bueno , ahora pongamos esto en práctica creando un código SIMPLE, no nos vamos a matar creando un super manager para un tutorial... xd
Algo así :
Código: python

# Probaremos los codes , asi que los pondremos todos
# Coded by Sanko
# Haremos lo siguiente :
# -Conectaremos con la BD
# -Veremos las BD's que tenemos creadas
# -Veremos las colecciones que ya tenemos creadas
# -Crearemos una nueva BD
# -Crearemos una nueva coleccion
# -Insertaremos nuevos documentos
# -Actualizaremos documentos
# -Borraremos documentos con remove y drop

# Simple MongoDB-Manager using pymongo - Sanko

from pymongo import Connection

def mongomanager():

conex = Connection('localhost')

def databases():
print "Control de BD's , Que deseas hacer?"
entrada = raw_input("- [1]Visualizar BD's | [2]Crear BD's | [3]Borrar BD's | [4]Home -> ")
if entrada == '1':
var = conex.database_names()
print var
databases()
elif entrada == '2':
name = raw_input("Nombre de la BD que quieres crear -> ")
global db
db = conex.name
databases()
elif entrada == '3':
delname = raw_input("Nombre de la BD que quieres eliminar -> ")
conex.drop_database(delname)
databases()
elif entrada == '4':
mongomanager()
else:
print "Error\n"
mongomanager()

def collections():
print "Control de Colecciones , que deseas hacer?"
entrada = raw_input("- [1]Visualizar colecciones | [2]Crear coleccion | [3]Home -> ")
if entrada == '1':
var = db.collection_names()
print var
collections()
elif entrada == '2':
global collectname
collectname = raw_input("Nombre de la coleccion que quieres crear -> ")
collect = db.collectname
collections()
elif entrada == '3':
mongomanager()
else:
print "error\n"
mongomanager()

def documents():
print "Control de Documentos , que deseas hacer?"
entrada = raw_input("[1]Crear documento | [2]Busqueda de documentos | [3]Eliminar documento | [4]Home -> ")
if entrada == '1':
#Escriba el contenido de esta manera "name":"sanko" por ejemplo.
document = raw_input("Escriba el contenido del doc => ")
collectname.insert({"name":"sankito"})
documents()
elif entrada == '2':
content = raw_input("Parametros del contenido -> ")
var = collectname.find(content)
print var
documents()
elif entrada == '3':
choosedel = raw_input("Desea vaciar el documento(1) o borrar algo especifico(2) -> ")
if choosedel == '1':
collectname.drop()
documents()
elif choosedel == '2':
delcontent = raw_input("Parametros del borrado -> ")
collectname.remove(delcontent)
documents()
else:
print "error\n"
documents()
else:
print "error\n"
mongomanager()

entrada = raw_input("PyMongo Manager => Exit(0) | Control BD's(1) | Control Colecciones(2) | Control de Documentos(3) -> ")
if entrada == '0':
exit
elif entrada == '1':
databases()
elif entrada == '2':
collections()
elif entrada == '3':
documents()
else:
print "Error\n"
mongomanager()

mongomanager()


Una imagen del rápido testeo :




Para los vagos aca les dejo el code en Pastebin -> You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

El code esta creado muy rápidamente por eso tiene unos patrones muy rígidos a vuestra imaginación queda quitar lla necesidad de definir unas variables antes de crear el documento y demas cosas , eso ya se tiene que hacer pensando como sería más cómodo y dedicandole un buen rato.

Espero os sirviera este articulo , como siempre UN ABRAZO.
Saludos , Sanko
#256
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
gracias compañeros, y como eliminar la posibilidad de ataque xss o sqlinjection? saludos
pues la xss se evita simplemente con filtrar con htmlentities y la sqli simple correjir los errores de validación , aparte como ya te dije la 2.5 solo tiene bug de escalada de privilegios en registro y como mucho un IFXSS en el uploader de avatares en el foro.
#257
Informática Forense / Analisis de Metadatos con FOCA
Diciembre 20, 2012, 10:00:22 AM
Buenas! , en esta ocasión vengo a traerles una presentación.odp sobre Analisis de Metadatos con FOCA y como burlar FOCA.

Me toco realizar una charla sobre Analisis de Metadatos y use esta presentación como guia para realizar una demostración en directo sobre "Ataque y Defensa".

La presentación esta hecha a prueba de Kiddies por lo qué cualquiera pueda aprender.
Esta se hizo con la intención de hacerme de GUIA mientras iva explicando y haciendo las cosas por lo que su explicación sobre el uso de FOCA no es muy extensa pero servirá para aprender lo básico o para aquel que quiera realizar una charla sobre lo mismo pueda tomarla como guia para la suya.



Sin mas os dejo el link de descarga :
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Espero que os sirva , un abrazo.
Sanko.
#258
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Hola compañeros, necesito que me ayudeis y orienteis en como securizar un CMS joomla tanto a nivel software como hardware, es para una web que manejare datos muy sensibles y la seguridad deber ser excepcional. Saludos y gracias
para mi la versión más segura es la 2.5 si le corrijes el bug de la vulnerabilidad en el registro.
#259
Base de Datos / Re:MongoDB - La MySQL del NoSQL
Diciembre 18, 2012, 05:31:36 PM
Me alegra te gustara , bueno trataré de hacer otro articulo introductorio para los amantes de python tocando pymongo
#260
Base de Datos / MongoDB - La MySQL del NoSQL
Diciembre 18, 2012, 11:34:53 AM
Buenas , no hace mucho me hicierón una propuesta para trabajar como backend y requerian de conocimientos en bases de datos NoSQL, así que como buen autodidacta me puse a googlear y me encontre con la MySQL de las bases de datos no relacionales.

Esta se llamaba MongoDB y con tan solo leer sus características me dejo totalmente enamorado.

Índice :

    {1} Introducción:

        1-¿Qué es MongoDB?

        2-Características

        3-Instalando MongoDB y Primeros pasos


{1}.1 : ¿Qué es MongoDB?

A estas alturas y con esa introducción todos los que desconoceís de MongoDB os estareís preguntando

-¿Qué es MongoDB?- , ahora aclararé todo.

MongoDB es una base de datos relativamente "nueva", esta se orienta a documentos...

-¿Como a documentos?- , para poder trabajar cómodamente sobre mongoDB debemos de olvidarnos de la lógica relacional que MySQL nos implemento , así que realizaré una comparativa para que os quedeís con los términos básicos.

Términos SQL - Términos MongoDB  :

    Database - Database
    Tabla - Colección
    Fila - Documento(BSON)
    columna - campo
    index - index

Con esto ya tendremos una comparativa bastante clara y podemos proseguir con "¿Qué es MongoDB?".

MongoDB fue programada en C++ de código abierto y fué pensada para ser rápida , escalable y sencilla.

Es muy importante destacar que MongoDB ofrece un mayor rendimiento que CouchDB(otra BD NoSQL) e incluso que MySQL.

¿Para qué podemos usar MongoDB?

Puesto que MongoDB no usa digamos los "estándares" de bases de datos no es muy recomendable usarla para aplicaciones bancarias pero cuando tienes que almacenar grandes cantidades de datos como por ejemplo un blog si sería ideal.

Tambien mucha gente recomienda crear híbridos en los que uses una BD Relacional para las transacciones y una no relacional como MongoDB para guardar datos,documentos.

{1}.2 : Características de MongoDB :

Bueno vamos a ver un poco por encima las características de MongoDB :

   Ausencia de transacciones
    Utiliza Almacenamiento Orientado a documentos (BSON)
    Soporte a Querys dinámicas
    Indexación de Documentos
    Indices Geoespaciales
    Analisis de Rendimiento de Queries
    Actualización de la información "in-Place"
    GridFS
    Replicación de Datos
    Implementación de Auto Sharding
    Utilización de Funciones  Map/reduce


Ausencia de transacciones

Se tiene en cuenta como desventaja pero es por esto por lo que MongoDB puede ser más rápida y escalable.

Utiliza Almacenamiento Orientado a documentos (BSON)

BSON(Binary-JSON) es una excelente forma de intercambio de información y de almacenaje. MongoDB almacena todo en un mismo documento y gracias a json el cual describe el contenido del documento no existe la necesidad de crear estructuras ni de esquematizar.

Aparte de las funcionalidades que posee JSON agrega otras como la habilidad de manejar datos binarios, permitiendoles ser sumamente rápida en la búsqueda, indexación, almacenamiento y recuperación de la información, ya que BSON es fácil y rápidamente transformable en cualquier tipo de dato nativo de cualquier lenguaje de programación.

Soporte a Querys dinámicas

MongoDB acepta la ejecución de queries dinámicas, es decir , se pueden ejecutar consultas sin haberlas definido antes como pasa en CouchDB.

Indexación de Documentos

A la hora de insertar documentos a una colección se indexan con una clave/prefijo (_id) que proporciona al documento la capacidad de ser único, esta _id se puede definir a la hroa de insertar pero si no se define el propio mongo te pondrá una por defecto.


Indices Geoespaciales

Esto permite por indexar información basandonos en geo/localización lo que es muy útil a la hora de elaborar aplicaciones para este area.

Analisis de Rendimiento de Queries

MongoDB nos acerca una herramienta para analizar consultas, desde luego muy útil para analizar defectos o mejorarlas.

Actualización de la información "in-Place"

MongoDB puede actualizarse donde quiera que sucedan los cambios ya que realiza la escritura de la información en la memoría y retrasa la escritura en disco lo más posible (esto puede ser una desventaja) pero esto le proporciona su velocidad.

GridFS

Como ya comentamos mongo utiliza BSON para el almacenaje de datos binarios y su limite esta en 4MB de datos binarios en un mismo documento.
Para eso si necesitamos espacios adicionales para audios , videos , imagenes mongoDB nos acerca un sistema de almacenaje de metadatos, GridFS.
Este permite almacenar información del archivo en una coleccion de archivos.
Esto se divide en minimas partes(chunks) que se almacenan en una coleccion de chunks y permite que sea mas sencillo manejar y escalar.

Replicación de Datos

MongoDB tiene un mecanísmo llamado "replicación maestro-esclavo".
Este mecanismo es sencillo de entender , todas las peticiones de escritura se realizan en la BD maestra quien las "copia" en su réplica(esclavo) y así tenemos alternativa si la maestro falla porque la esclava ocupa su sitio.

Implementación de Auto Sharding


Esta es la característica más útilizada porque esta busca que se encarga del manejo de la data y de que esta vaya al servidor correcto para que las queries se ejecuten de la forma más eficiente.

Funciones  Map/reduce

Son las funciones más poderosas en cuanto a consultoría de data se refiere.
Estan en JS(JavaScript) y se ejecutan en el servidor.
Hay que dejar claro que mongoDB tiene una shell js para el manejo de BD's y en ella podemos trabajar con código js que nos permite explotar todo su potencial.(Bucles para insertar documentos etc etc...)

La función MAP se encarga de encontrar documentos que cumplen X condición/criterio , despues la funcion REDUCE se encarga de procesar esa información y nos retorna un documento con la información "peticionada"/"encargada".

{1}.3 : Instalando MongoDB

Es de lógica que si vamos a ver como instalar MongoDB primero habrá que descargarlo ¿No?.

Para esto acudimos a su website oficial ->Mongodb.org

Ahí podeís elejir para que OS y estas cositas , en mi caso Linux 32-bit



O tambien podemos hacerlo desde nuestra terminal :
Código: text
sudo apt-get install mongodb


Para comprobar si todo quedo bien abrimos nuestra terminal y escribimos :
Código: text
mongo



Se nos conecta a una bd por defecto "test" , vamos a crear nuestra propia database:
Código: text
use nombredb




Podemos ver que databases tenemos creadas con :
Código: text
show dbs


Aclaración :

La base de datos no se guardará hasta que no guardemos algo dentro...
esto quiere decir que si la creo "use namedb" y luego me salgo de la shell la db no aparecera como creada.
Ok , creemos una colección para nuestra database e insertaremos un documento :

Código: text
db.nombrecoleccion #asi creamos la coleccion
db.nombrecoleccion.insert({"name":"sanko","twitter":"sankoSK"})


Podemos ver que colecciones tenemos creadas con :
Código: text
show collections


Ahora usaremos .find() para comprobar que se creo el documento :
Código: text
db.nombrecoleccion.find()




ahí vemos que nos creo el documento y lo pudimos buscar con .find() que daría un busqueda a todos entre los () podemos dar argumentos
Vamos a crear otro documento con una estructura totalmente diferente para probar la eficiencie de find() para pedirle una busqueda más especifica:
Código: text
db.nombrecoleccion.insert({"color":"azul","material":"metal"})
db.nombrecoleccion.find({"color":"azul"})




Ahi comprobamos que nos muestra solo lo que nosotros queremos buscar , es decir , datos que contengan "color":"azul" , si no , no muestra nada.
Existe otro método , para mi un poco inútil la verdad pero es otro , xd , este muestra solo la primera fila del doc.
Código: text
db.nombrecoleccion.findOne()


Bueno pasemos a el método count() , este si es más útil ya que nos dice el número de los que tenemos almacenados :
Código: text
db.nombrecoleccion.count()




supongamos que queremos actualizar datos y para esto tenemos a nuestro querido update()
Código: text
db.nombrecoleccion.update({"name":"sanko"}, {$set:{"other":"fuckthishit"}})




Como podeís observar en la imagen gracias a $set actualizamos el documento COLOCANDO "other":"fuckthishit" despues de "name":"sanko"

Ahora tocaremos sobre los métodos remove y drop  , es de suponer que algo tiene que ver con eliminar... xd, el método remove nos servira para eliminar filas en los documentos , aqui un ejemplo :
Código: text
db.nombrecoleccion.remove()


Esto lo que hará será borrar todas las filas del documento dejando este vacío:



pero tambien podemos usar a remove() con parametros para borrar algo de manera concreta :
Código: text
db.nombrecoleccion.insert({"name":"sanko"})
db.nombrecoleccion.insert({"color":"rojo"})
db.nombrecoleccion.remove({"color":"rojo"})




ahí podeís ver que nos borro lo que le pedimos.

Bueno y por último en esta "introducción" a mongoDB daremos el método drop qué es como el remove PERO drop no tiene la opción de poder borrar datos especificos , si no que te vacia el documento y ya.
Código: text
db.nombrecoleccion.drop()


Espero que vuestra opinión acerca de esta database sea buena y qué más que decir que el próximo articulo sobre mongodb será algo más "profundo" , veremos más métodos , de autentificación, y demas

Saludos , Sanko.