Giter Site home page Giter Site logo

mongodb--commands's Introduction

MongoDB - Comandos Basicos

mongodb.com

Mongo Server (MSI)

https://www.mongodb.com/es

Mongo Shell (MSI)

https://www.mongodb.com/try/download/shell

Mongo Database Tools (MSI)

https://www.mongodb.com/try/download/database-tools

Pasos instalación

paso-01

paso-02

paso-03

paso-04

paso-05

paso-06

paso-07

Instalación MONGO Shell

Siguiente, siguiente...

Instalación MONGO Tools

Siguiente, siguiente...

Instalación conEmu

https://conemu.github.io/

consola-emu

arqui-pc

Verificar que mi ambiente este OK

MongoD (Servidor)

mongod --version # verifico que mi servidor instalado y configurado

Nota: si el comando no es encontrador. Colocar la carpeta de los binarios en las variables de entorno del sistema operativo. Colocar en el path.

C:\Program Files\MongoDB\Server\6.0\bin

Mongo Shell (Cliente)

mongosh --version # verifico que tenga instalado y configurado

MONGO DB Tools

mongodump --version # verifico que tenga instalado y configurado

Nota: si el comando no es encontrador. Colocar la carpeta de los binarios en las variables de entorno del sistema operativo. Colocar en el path.

C:\Program Files\MongoDB\Tools\100\bin

Levantar el servidor

https://www.mongodb.com/docs/manual/reference/program/mongod/

mongod

IMPORTANTE: Si no queda tomada la consola. Tengo que crear los siguientes (directorios/carpetas). C:\data\db (O sea crear data dentro del disco C: y dentro de data la carpeta db)

Levantar MongoD en una carpeta personalizada

mongod --dbpath="D:\mis_bases_de_datos\nombre"

Cliente para conectar al servidor

Acuerdense que tiene que estar levantado el servidor mongod

mongosh

Si no lo tengo levantado el error:

Current Mongosh Log ID: 637ead1554cbe0578d0d7099
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.5.4
Using MongoDB:          6.0.2
Using Mongosh:          1.5.4

Drivers para las diferentes tecnologías

https://www.mongodb.com/docs/drivers/

SQL vs NoSQL

sql-nosql

Collections and Documents

collections

Interactuando con la DB

Listar DB

show dbs

Crea DB o cambia a la DB

use <nombre-de-la-base-de-datos>
use db-mongo

Nota: Tener en cuenta que la base de datos se crea en memoria hasta que no se crea alguna colección.

Crear una colección

Nota: Tengo que estar posicionado dentro de la DB. A la cual le quiero agregar una colección

# Creo una colección en forma implicita
db.createCollection('<nombre-de-colección>')
db.createCollection('productos')

insertOne(): Me inserta un documento.

# Creo una colección en forma explicita
db.<nombre-colección>.insertOne({})
db.productos.insertOne({nombre: 'TV', precio: 1234})

insertMany(): Me inserta varios documentos

db.clientes.insertMany([{},{},{}]) # Tengo que colocar los documentos dentro de un ARRAY
db.productos.insertMany(
    [
        {nombre: "Heladera", precio: 231},
        {nombre: "Microondas", precio: 2331},
        {nombre: "Monitor", precio: 3233},
        {nombre: "Notebook", precio: 2311},
        {nombre: "Zapatilla", precio: 441},
    ]
)

OBJECTID

Cada vez que inserto un documento, se crea automaticamente el ObjectID. Este filed es único. No se repite.

https://www.mongodb.com/docs/manual/reference/method/ObjectId/

Conversor de ObjectID a Timestamp https://nddapp.com/object-id-to-timestamp-converter.html

find(): Listo todos los documentos de una colección o con un objeto filtro a traves de un patrón.

db.clientes.find() # Me lista todos los documentos dentro de la colección clientes
db.clientes.find({})

find(): Con filtro

db.productos.find({ nombre: 'Cocina' })

find(): Filtro con una regular expresion

db.productos.find({ nombre: /cocina/i }) # Utilizo una regex para buscar tanto en mayuscula como en minuscula cocina

Otra forma de hacer filtros con regex

https://www.mongodb.com/docs/manual/reference/operator/query/regex/

db.productos.find(
    {
        nombre: {
            $regex: 'cocina',
            $opciones: 'i'
        }
    }
)

REGEXP o REGEX (Expresiones regulares | regular expression)

https://regexr.com/ https://regex101.com/


Repasamos:

Levantar el servidor local

mongod

Otra manera de levantar el servidor local

mongod --dbpath="D:\mis_bases_de_datos\nombre"

Conectar al servidor local.

Se conecta por defecto a esta URI: mongodb://127.0.0.1:27017/

mongosh

Mostrar DBs

show dbs

Listar collections dentro de DB

show collections

Para saber en que collections estoy parado.

db

find(): Me permite busqueadas a partir filtros

db.usuarios.find({nombre: /o$/}) # Todos los que terminan con o
db.usuarios.find({nombre: /^A/}) # Todos los que empiezan con A

Ejemplo de uso con $regex

const search = 'A'
db.usuarios.find(
    {
        nombre: {
            $regex: `^${search}`,
            $options: 'i' # No es obligatorio pero le puedo pasar optiones (Flags)
        }
    }
)

Logical Query Operators

https://www.mongodb.com/docs/manual/reference/operator/query/and/

$and (Operador Y lógico)

db.usuarios.find(
    {
        $and: [
            {nombre: 'Adrian'},
            {edad: 23}
        ]
    }
) # Si los patrones de búsqueda se cumplen va a mostrar los documentos que cumplen con ambas

$or (Operador O lógico)

db.usuarios.find(
    {
        $or: [
            {nombre: 'Adrian'},
            {edad: 27}
        ]
    }
) # Busca uno u otro de los patrones. No necesariamente se tienen que cumplir ambos patrones

Comparison Query Operators

$gt: Más grande que...

https://www.mongodb.com/docs/manual/reference/operator/query/gt/

db.usuarios.find(
    {
        edad: { $gt: 29 }
    }
) # Busca en el field edad los mayores a 29

$gte: Más grande o igual que...

db.usuarios.find(
    {
        edad: { $gt: 29 }
    }
) # Busca en el field edad los mayores e iguales a 29

lt: Menor a...

db.usuarios.find(
    {
        edad: { $lt: 29 }
    }
) # Busca en el field edad los menores a 29

lte: Menor o igual a...

db.usuarios.find(
    {
        edad: { $lte: 29 }
    }
) # Busca en el field edad los menores o iguales a 29

$ne: Distinto del patrón que búsque

db.usuarios.find( 
    { 
        nombre: {
            $ne: 'Gabriel' 
        } 
    }
)

$in: Todos los valores que le indique dentro de un array...

db.usuarios.find( 
    { 
        edad: {
            $in: [24, 27, 26]
        } 
    }
)

$nin: Todos los valores contrarios a lo que le indique dentro de un array...

db.usuarios.find( 
    { 
        edad: {
            $nin: [24, 27, 26]
        } 
    }
)

sort(): Ordenamiento

db.usuarios.find({}).sort(
    {
        nombre: -1 # Todos los documentos ordenados de la z-a
    }
)
db.usuarios.find({}).sort(
    {
        nombre: 1 # Todos los documentos ordenados de la a-z
    }
)

Caso de uso: Todos los documentos mayores a 26 ordenados de menor a mayor

db.usuarios.find(
    {
        edad: {
            $gte: 26
        }
    }
).sort(
        {
            edad: 1
        }
    )

limit(): Me permite limitar la cantida de documentos filtrados.

db.usuarios.find({}).limit(3)

skip(): Me permite descartar una cantidad de documento elegida.

db.usuarios.find({}).skip(3)

Caso de uso: Hacer un paginado

db.usuarios.find({}).limit(5).skip(0)

size(): Me cuenta la cantida dd edocumentos que me devuelve el find

db.usuarios.find().size()

countDocuments(): Cantidad de documentos que tengo dentro de una colección

db.usuarios.countDocuments()

find({}, {}): Es que admite un segundo objeto

Nota: Por defecto siempre muestra el ObjectID

db.usuarios.find({}, {edad: 1}) # Me muestra solo la edad con el ObjID. 
db.usuarios.find({}, {nombre: 1, _id: 0}) # Solo muestra nombre
db.usuarios.find({}, {edad: 0, _id: 0}) # Solo muestra nombre

mongodb--commands's People

Contributors

drako01 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.