A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Operaciones CRUD desde la consola de MongoDB

10/26
Recursos

Instrucciones y comandos de la clase:

Conexi贸n con el cluster de MongoDB Atlas: mongo "URL DE NUESTRO CLUSTER", (recuerda a帽adir tu IP a la lista de IPs permitidas para no tener problemas en esta parte).

Listar las bases de datos de nuestro cluster: show dbs.

Seleccionar una base de datos: use NOMBRE_BD. Debemos crear por lo menos un documento si la base de datos es nueva porque MongoDB no crea bases de datos vac铆as.

Recordar qu茅 base de datos estamos usando: db.

Listar las colecciones de nuestra base de datos: show collections.

Crear una colecci贸n (opcional) y a帽adir un elemento en formato JSON: db.NOMBRE_COLECCI脫N.insertOne({ ... }). La base de datos responde true si la operaci贸n fue exitosa y crea el campo irrepetible de _id si nosotros no lo especificamos.

Crear una colecci贸n (opcional) y a帽adir algunos elementos en formato JSON: db.NOMBRE_COLECCI脫N.insertMany([{ ... }, { ... }]). Recibe un array de elementos y devuelve todos los IDs de los elementos que se crearon correctamente.

Encontrar elementos en una colecci贸n: db.NOMBRE_COLECCI脫N.find() Podemos aplicar filtros si queremos o encontrar solo el primer resultado con el m茅todo findOne().

Listar todos los posibles comandos que podemos ejecutar: db.NOMBRE_COLECCI脫N.help().

Aportes 73

Preguntas 12

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

![](

Comparison Query Operators
$eq -> Matches values that are equal to a specified value.
$gt -> Matches values that are greater than a specified value.
$gte -> Matches values that are greater than or equal to a specified value.
$in -> Matches any of the values specified in an array.
$lt -> Matches values that are less than a specified value.
$lte -> Matches values that are less than or equal to a specified value.
$ne -> Matches all values that are not equal to a specified value.
$nin -> Matches none of the values specified in an array.

Para los que quieran solo copiar y pegar

db.inventory.insertOne( {_id:"soyID", item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm"} } )```

Les dejo un tutorial donde explico algunas cosas extras de las operaciones CRUD en Mongo cosas b谩sicas de un CRUD en MongoDB

No te olvides de poner el filter en el deleteMany(). (NoSQL)
No te olvides de poner el where en el delete from. (SQL)

Apuntes de la clase
InsertOne(). Guardar un documento dentro de la colecci贸n en la BD. Si no existe la conexi贸n MONGODB la crea. Ingresa en formato JSON. Al hacer un insert dentro de una colecci贸n sino especifica el underscoreId (es un campo obligatorio que la BD pide) Mongo lo crea autom谩ticamente.

InsertMany() recibe un arreglo en formato JSON y los ingresa a MongoDB autom谩ticamente MongoDB tiene automicidad dentro de los documentos quiere decir que en el las operaciones de escritura garantiza que al escribir un documento la operaci贸n es at贸mica (se escribe y si no se escribe se hace rollback ( no se guarda en la BD)).

Find({CONDICION}). Se hace una consulta con un filtro y nos permite buscar uno o varios documentos que cumplan la condici贸n.

FindOne(). Devuelve los documentos en orden natural (guarda los doc. dentro del sistema de archivos), se pueden definir conforme los 铆ndices. FinOne({_id: objectId(鈥楨L ID DEL OBJETO鈥)}).

Operador AND la forma sencilla es ponerla dentro del filtro FinOne({_id: objectId(鈥楨L ID DEL OBJETO鈥), qty: {$slte: 75} }). Si y solo si ambas son verdaderas devuelve un documento.

**UpdateOne(Filtro, nuevo valor). **De igual manera recibe un JSON o un arreglo de doc. UpdateOne({_id: objectId(鈥業D DEL OBJETO鈥)}, {$set: {qty:130}}). updataMany() si hay m谩s de un doc. Que cumplan con la condici贸n cambiar谩 el valor de cada uno

DeleteOne() hace el paso del filtro, borrar谩 seg煤n su orden natural que encuentre con el filtro.
DeleteOne({status: 鈥淎鈥潁)

DeleteMany(). Compara el filtro con la cantidad de doc. Que cuplen con el filtro y los borra
DeleteOne({status: 鈥淎鈥潁)

db.inventory.insertMany( [
   { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },
   { item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
   { item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }
] )


db.inventory.find( { item: "canvas" } )


db.inventory.insertOne(
   { _id: "one", item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)```

Encontre que el update() no actualiza todos los documentos si no tiene activa la opcion de multi, si quieren actualizar todo lo que empate con el filtro por defecto se puede usar el metodo updateMany()

db.inventory.update(
    { qty: { $eq: 10 } },
    { $set: { qty: 40 } },
    { multi: true }
)

// O se puede usar

db.inventory.updateMany(
    { qty: { $eq: 10 } },
    { $set: { qty: 40 } }
)

en el m茅todo findOne puedes pasar solamente el valor del object id

db.inventory.findOne('5c9bcbdfb8a58f18905f89d3')

pero si utilizas un filtro si debes pasarlo como ObjectId o te regresar谩 null

db.inventory.findOne({_id: ObjectId('5c9bcbdfb8a58f18905f89d3')})

tambi茅n, si almacenaste tu id como string y no como object id

db.inventory.insertOne(_id: 'qwerty', item: 'canvas')

y lo intentas consultar s贸lo con el id

db.inventory.findOne('qwerty')

te dar谩 el error

Error: error: {
鈥渙k鈥 : 0,
鈥渆rrmsg鈥 : 鈥淩eferenceError: qwerty is not defined :\[email protected]:1:15\n鈥,
鈥渃ode鈥 : 139,
鈥渃odeName鈥 : 鈥淛SInterpreterFailure鈥
}

JSON usado por el profesor en el m茅todo insertOne():

db.inventory.insertOne({ item: "canvas", qty: 100, tags:["cotton"], size: {h:28, w:35.5, uom: "cm"}})

Importante tener en cuenta que si nosotros mismos definimos los _id, para la consulta no es necesario agregar el m茅todo ObjectId(), Por ejemplo:

db.inventory.findOne({_id: "soy id"})

antes de esta clase esperaba ver un ejemplo de como dise帽ar desde cero el model de una base de datos utilizando mongoDB

Buen铆simo el resumen y descripci贸n del profesor en el v铆deo!

Hola tengo una duda y como se podria actualizar un array dentro de un documento pq tengo el siguiente documento con la siguiente estructura y no se como agregarle un item al array

"category": "Other",
 "phone": " 052050000 - 0999991097",	
 "visited": [
            {
                "ref": "5d67dd8a095e3f47d4f9c929",
                "child": [
                    {
                        "id": "5d67dd8376bb0247bf3a70ff"
                    }
                ]
            }
        ]

y quiero agregarle un child al ref pero no se como se hace el update, aquien que sepa q me pueda decir, soy nuevo con mongo y no le entiendo bien esto de actualizar, pq actualizar puede ser cambiar un valor o agregar un valor o eliminar un valor de un documento

db.inventory.insertMany([
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);

Encontr茅 esta lista por Internet 鉂わ笍
$eq: igual que (equal)
$ne: distinto de (not equal)
$gt: valores mayores que (greater than)
$gte: valores mayores o iguales que (greater than or equal)
$lt: valores menores que (lower than)
$lte: valores menores o iguales que (lower than or equal)
$in: sus valores se encuentran dentro del array especificado. Por ejemplo: { 鈥減ais鈥: { $in: [鈥淓spa帽a鈥, 鈥淔rancia鈥漖 }} mostrar谩 todos los documentos cuyo campo pais sea Espa帽a o Francia
$nin: operaci贸n contraria a $in, obtiene los documentos cuyo valor NO est茅 en el array

Con windows usamos CMD
y desde la ubicacion:
C:\Program Files\MongoDB\Server\4.2\bin
corremos:
mongo mongodb+srv://<user>:<password>@cluster0.adj3o.mongodb.net

eso es todo

En **mongoDB ** todo elemento que se inserta en un documento si este no contiene un _id es agregado al objeto autom谩ticamente. Sin embargo, es posible definir tu propio _id pero este debe ser 煤nico y no haber sido usado anteriormente en el mismo documento.

En mongo los _id autogenerados siempre seran unicos.

No me puedo conectar a mongoBD Atlas desde el shell, alguien tiene la soluci贸n? (soy usuario windows).

Excelente Clase

que bueno y facil de usar. lo malo es que como es tan facil como en el caso del delete la gente puede hacer un truncate de la coleccion muy facilmente.

Insertar db.inventory.insertOne({ item: 鈥渃anvas鈥, qty: 100, tags: [鈥渃otton鈥漖, size: { h: 28, w: 35.5, uom: 鈥渃m鈥潁 })

Pregunta de examen:
驴Qu茅 ocurre si ejecuto db.collection.deleteMany({})?

Insertar documentos desde la consola de Mongo

El CRUD describe las funciones elementales de una base de datos persistente. CRUD significa Crear, Recuperar/Leer, Actualizar y Eliminar.

Operaciones de crear e insertar nuevos documentos a una colecci贸n. Si la colecci贸n no existe actualmente, las operaciones de inserci贸n crear谩n la colecci贸n.

MongoDB proporciona los siguientes m茅todos para insertar documentos en una colecci贸n:

db.<collection>.insert({JSON-Document}) Permite agregar una o varias colecciones a una base de datos.
 db.<collection>.insertOne({JSON-Document}) A diferencia del insert({JSON-Document}), este m茅todo solo inserta una colecci贸n.
 db.<collection>.insertMany([{JSON-Document}, {Other-JSON-Document}, {...}]) Este m茅todo es similar a insert({JSON-Document}), sin embargo, este m茅todo fue incluido en la versi贸n 3 de MongoDB por ende debe comenzar a usarse y evitar insert({JSON-Document}).

Funciones find y findOne

Las operaciones de lectura, recuperan documentos de una colecci贸n. MongoDB proporciona los siguientes m茅todos para leer documentos de una colecci贸n:

    db.<collection>.find() Imprime los primeros 20 documentos que encuentra.
        .limit(n) Imprime los primeros n documentos que encuentra.
        .pretty() Imprime los documentos de una forma m谩s legible.
    db.<collection>.find({"clave": "valor"}, {"clave": valor}) Imprime el documento que contenga la(s) clave(s) y el (o los) valor(es) especificado(s). Con findOne({...}) se muestran los documentos de forma m谩s legibles para la vista.
    db.<collection>.find({"clave": {$gt: "valor"}}) Imprime los documentos mayores al valor de alguna clave en un documento.
        $gt Significa mayor que (>).
        $lt Significa menor que (<).
        $gte Significa mayor o igual a (>=).
        $lte Significa menor o igual a (<=).
    db.<collection>.findOne() Imprime solo el primer documentos que encuentra.

Modificaci贸n de documentos en la consola de MongoDB

Las operaciones de actualizaci贸n, modifican los documentos existentes en una colecci贸n. MongoDB proporciona los siguientes m茅todos para actualizar documentos de una colecci贸n:

db.<collection>.save({JSON-Document)} Modifica un campo si se encuentra en una colecci贸n, si no se agrega.
 db.<collection>.update({JSON-Document)} Actualiza el documento por completo, es decir, elimina todos los campos y agrega los nuevos dejando as铆 solo el _id.
 db.<collection>.updateOne({filtro}, {"clave": "valor"}) Se actualizar谩 el primer documento que coincida con el filtro.
 db.<collection>.updateMany({filtro}, {"clave": "valor"}) Se actualizar谩 todos los documentos que coincida con el filtro.

Eliminar documentos en la consola de MongoDB

Las operaciones de borrado, eliminan documentos de una colecci贸n. MongoDB proporciona los siguientes m茅todos para eliminar documentos de una colecci贸n:


    db.<collection>.deleteOne({"filter")} Elimina el primer documento encontrado seg煤n el filtro.
    db.<collection>.deleteMany({"filter")} Elimina todos los documentos encontrados seg煤n el filtro.
    db.<collection>.remove({"filter")} Elimina un campo seg煤n el filtro, es decir, si coincide uno o muchos documentos con el filtro ser谩n eliminados de la base de datos.
    db.<collection>.drop() Elimina todos los documentos de una colecci贸n.

Dato extra

Para crear solamente la colecci贸n sin registros podemos utilizar:

db.createCollection("nombre")

y comprobamos con show collections

Para eliminar toda una colecci贸n es lo siguiente

db.nombredemicoleccion.drop()

鈿狅笍Mucho cuidado al eliminar cosas鈿狅笍

Wow me parece super comodo lo de los idObject automaticos

Me sorprende lo que tarda en ejecutarse las consultas la server, tardan como 9 segundos con mi conexion de internet

馃槮 鈥

Los operadores de Mongo estan loquisimos. Ni parecidos a los de SQL

Se me hace incomodo usar la consola por la propia sintaxis de MongoDB.

Create

db.**<collection>**.insertOne({BSON})

Recibe un elemento que sera agregado a la colecci贸n

db.<collection>.insertMany([{ ... }, { ... }]).

Recibe un array de BSON y devuelve todos los IDs de los elementos que se crearon correctamente.

Read

db.collection.find({<Conditions>})

Recibe un bson, Regresa todos los documentos que cumplan con las condiciones dadas en el json

db.collection.findOne({<conditions>})

Retorna el primer elemento que cumpla dicha condici贸n en la colecci贸n

Update

db.<collection>.updateOne({conditions},{set:{changeValue:newValue}})

Actualiza el primer registro que cumpla con la condici贸n

db.<collection>.updateMany({conditions},{set:{changeValue:newValue}})

Actualiza todos los registros que cumplan con una condici贸n

Delete

db.inventory.deleteOne({Condition});

Elimina el primer registro que cumpla la condici贸n

db.inventory.deleteMany({<Condition>});

Elimina todos los registros que cumplan con dicha condici贸n

Al final de una funci贸n:

.count() Cuenta la cantidad de elementos retornados por un comando

.pretty()Muestra la infomaci贸n de manera m谩s amigable

Queries de comparaci贸n

Ejemplo de query de comparaci贸n:

db.inventory.findOne({qty:{$lte:125}})

Si como yo, no pueden conectarse a MongoDB desde la terminal (a pesar de tener la IP incluida y todo en orden) usen la GUI de Mongo Compass, tiene un terminal incluida para ejecutar los comandos. Solamente aseg煤rense de estar en la base de datos correcta, con use paltzi-db.

.deleteOne()/Many()

.updateOne()/Many()

.findOne() - Orden Natural

.count()

.count()

.pretty()

.find()

.help()

.InsertOne()

En el minuto 3:27 falta una coma al final de soyId porque muestra error de sintaxis. Debe quedar as铆:

_id: "soyId", 

Si desean borrar una colecci贸n pueden usar el comando drop:
db.NOMBE_COLEC.drop()

hay que ser bastante cuidadoso con los cierres de llaves y demas

Mongo.exe
- Show dbs: Muestra las bases de datos
- Db usuarios: Entrar a la base de datos usuarios
- Db.usuarios.insertOne({鈥): Insertar un elemento en formato json
- Show collections: Muestra una table
- Db.usuarios.findOne(): Muestra un indice de una tabla
- Db.inventory.insertMany()
- Db.inventory.find(filtro). pretty() / count()

Update
- db.inventory.updateOne({id}, {$set: {actualizacion} })
鈼 db.inventory.updateOne({_id: ObjectId(鈥60b105b1c9e7093189330fc1鈥)}, {$set: {qty: 30}})
- Update(鈥)

Delete
- Db.inventory. deleteOne / deleteMany
db.inventory.deleteOne( { status: 鈥淎鈥 } )

Conectarse a MongoDB

mongo <URI Atlas>

Usar la base de datos creada de platzi

use platzi-db

El campo _id si no es agregado por nosotros de forma expl铆cita, MongoDB lo agrega por nosotros como un ObjectId

el campo _id es obligatorio en todos los documentos

---------------------------------Create-----------------------------

db.inventory.insertOne(
{ item: 鈥渃anvas鈥, qty: 100, tags: [鈥渃otton鈥漖, size: { h: 28, w: 35.5, uom: 鈥渃m鈥 } }
)

db.inventory.insertMany( [
{ item: 鈥渃anvas鈥, qty: 100, size: { h: 28, w: 35.5, uom: 鈥渃m鈥 }, status: 鈥淎鈥 },
{ item: 鈥渏ournal鈥, qty: 25, size: { h: 14, w: 21, uom: 鈥渃m鈥 }, status: 鈥淎鈥 },
{ item: 鈥渕at鈥, qty: 85, size: { h: 27.9, w: 35.5, uom: 鈥渃m鈥 }, status: 鈥淎鈥 },
{ item: 鈥渕ousepad鈥, qty: 25, size: { h: 19, w: 22.85, uom: 鈥渃m鈥 }, status: 鈥淧鈥 },
{ item: 鈥渘otebook鈥, qty: 50, size: { h: 8.5, w: 11, uom: 鈥渋n鈥 }, status: 鈥淧鈥 },
{ item: 鈥減aper鈥, qty: 100, size: { h: 8.5, w: 11, uom: 鈥渋n鈥 }, status: 鈥淒鈥 },
{ item: 鈥減lanner鈥, qty: 75, size: { h: 22.85, w: 30, uom: 鈥渃m鈥 }, status: 鈥淒鈥 },
{ item: 鈥減ostcard鈥, qty: 45, size: { h: 10, w: 15.25, uom: 鈥渃m鈥 }, status: 鈥淎鈥 },
{ item: 鈥渟ketchbook鈥, qty: 80, size: { h: 14, w: 21, uom: 鈥渃m鈥 }, status: 鈥淎鈥 },
{ item: 鈥渟ketch pad鈥, qty: 95, size: { h: 22.85, w: 30.5, uom: 鈥渃m鈥 }, status: 鈥淎鈥 }
] )

db.inventory.find( { item: 鈥渃anvas鈥 } )

db.inventory.insertOne(
{ _id: 鈥渙ne鈥, item: 鈥渃anvas鈥, qty: 100, tags: [鈥渃otton鈥漖, size: { h: 28, w: 35.5, uom: 鈥渃m鈥 } }
)

Atomicidad, todas las operaciones de escritura en MongoDB con at贸micas a nivel de documentos

---------------------------------Read-------------------------------

db.inventory.find( {} )

Igualdad

db.inventory.find( { status: 鈥淒鈥 } )

Operadores

db.inventory.find( { qty: { $gt: 30 } } )

Condici贸n AND

db.inventory.find( { status: 鈥淎鈥, qty: { $lt: 30 } } )

Condici贸n OR con operador

db.inventory.find( { $or: [ { status: 鈥淎鈥 }, { qty: { $lt: 30 } } ] } )

Trae el primer documento que cumpla con el filtro de acuerdo al orden natural en que los documentos se encuentren guardados en disco

db.inventory.findOne( { status: 鈥淎鈥, qty: { $lt: 30 } } )

---------------------------------Update-----------------------------

Update One

db.inventory.updateOne(
{ item: 鈥減aper鈥 },
{
$set: { 鈥渟ize.uom鈥: 鈥渃m鈥, status: 鈥淧鈥 },
$currentDate: { lastModified: true }
})

Update Many

db.inventory.find({qty: {$lt: 50}})

db.inventory.updateMany(
{ 鈥渜ty鈥: { $lt: 50 } },
{
$set: { 鈥渟ize.uom鈥: 鈥渋n鈥, status: 鈥淧鈥 },
$currentDate: { lastModified: true }
}
)

db.inventory.find({qty: {$lt: 50}})

Reemplazar un documento y conservar su _id

db.inventory.find({item: 鈥減aper鈥潁)

db.inventory.replaceOne(
{ item: 鈥減aper鈥 },
{ item: 鈥減aper鈥, instock: [ { warehouse: 鈥淎鈥, qty: 60 }, { warehouse: 鈥淏鈥, qty: 40 } ] }
)

db.inventory.find({item: 鈥減aper鈥潁)

---------------------------------Delete-----------------------------

db.inventory.find({status: 鈥淎鈥潁)

Borrar muchos documentos de acuerdo a un filtro

db.inventory.deleteMany({ status : 鈥淎鈥 })

db.inventory.find({status: 鈥淒鈥潁)

Borrar un documento

db.inventory.deleteOne( { status: 鈥淒鈥 } )

Borrar todos los documentos de una base datos

db.inventory.deleteMany({})

隆Qu茅 bien se siente hacer tu primer CRUD!

Excelente clase!!

Muy interesante, hay que tener mucho con el borrado o la actualziacion sin filtros.

驴Qu茅 es m谩s r谩pido? Un query de buscada mongodb o postgres/mysql/etc ?

Seria algo asi? Tuplas = Documentos, Colecciones = Tablas ?

Vamos bien!

Si Mongo utiliza atomicidad de documentos, c贸mo se manejar铆a la transaccionalidad de las inserciones?

Tengo un inconveniente con el driver para c#, tengo Visual Studio 2019
y la pagina me dice que la conecion se realiza asi
var mongoUrl = new MongoUrl(鈥渕ongodb+srv://User:<Password>@pruebachiAAA-verhd.mongodb.net鈥);
_client = new MongoClient(mongoUrl);
var db = _client.GetDatabase(鈥渕yfirstdb鈥);
var collection = db.GetCollection<Student>(鈥渟tudent鈥);
Student student = new Student(鈥淕ino鈥, 鈥淕rimaldos鈥);
collection.InsertOne(student);

al ejecutarla tengo

MongoDB.Driver.MongoAuthenticationException: 鈥楿nable to authenticate using sasl protocol mechanism SCRAM-SHA-1.鈥

Como puedo arreglar ello y que la conexion se mantenga

De antemano gracias profe, me urge el tema.

Si Omito el ID, en un el comando updateOne, como se comporta MongoDB, Si encontrase 2 items iguales siguiendo el ejemplo visto en clases, modifica el primero que encuentra?, o modifica uno aleatoriamente?;

Estar铆a bueno compartir los json que est谩s usando para que facilites seguir los ejemplos. M谩s si se est谩 usando la consola donde es poco amigable escribir json鈥檚 馃槂

Incre铆ble!!

Le entend铆 perfecto 馃槂

Una clase muy pr谩ctica! Son de las clases que m谩s disfruto en los cursos de platzi!!

SELECT= db.{colecci贸n}.find / findOne( {condici贸n} )
INSERT = db.{colecci贸n}.insertOne / insertMany( {JSON a insertar} )
UPDATE = db.{colecci贸n}.updateOne / updateMany( {condici贸n}, {valor a actualizar} )
DELETE = db.{colecci贸n}.delteOne / deleteMany( {condici贸n} )

Genial

Excelente

Muy interesante

C贸mo ser铆a en mongodb algo similar a los que en SQL seria?:

SELECT * FROM Table WHERE  field like "%query%"

Para pedir campos especificos en la consulta se agrega un el filtro + los campos que se quieran traer, ejemplo

db.collection.find({_id: "xxxx", qty: 2}, {_id: false, qty: true})

de esta forma la consulta solo traeria el documento que cumpla esa condicion y mostraria solo el field qty

El CRUD en mongo est谩 muy padre, se siente mas intuitivo.

De donde saca la URL del clouster?

Estupenda clase instructor Albert, quedo clara la manera en que podemos aplicar las operaciones de CRUD por medio de la consola.

db.inventory.find({item: 鈥渃anvas鈥潁).pretty().count() formato bonito y cuenta los resultados
db.inventory.findOne({_id:ObjectId(鈥5f5aa1bf8206ae1148357b92鈥)})
db.inventory.findOne({_id:ObjectId(鈥5f5aa1bf8206ae1148357b92鈥), qty:{$lte:200}})
db.inventory.updateOne({_id:ObjectId(鈥5f5aa1bf8206ae1148357b92鈥)}, {$set:{qty:500}})
db.inventory.deleteOne({status: 鈥淎鈥潁) Borra de uno en uno
db.inventory.deleteMany({status: 鈥淎鈥潁) Borra todos los que encuentre


# Conectarse a MongoDB
mongo <URI Atlas>


# Usar la base de datos creada de platzi
use platzi-db


# El campo _id si no es agregado por nosotros de forma expl铆cita, MongoDB lo agrega por nosotros como un ObjectId
# el campo _id es obligatorio en todos los documentos


# ---------------------------------Create-----------------------------
db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)


db.inventory.insertMany( [
   { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" },
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" },
   { item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
   { item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }
] )


db.inventory.find( { item: "canvas" } )


db.inventory.insertOne(
   { _id: "one", item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
# Atomicidad, todas las operaciones de escritura en MongoDB con at贸micas a nivel de documentos 


# ---------------------------------Read-------------------------------
db.inventory.find( {} )


# Igualdad 
db.inventory.find( { status: "D" } )


# Operadores
db.inventory.find( { qty: { $gt: 30 } } )


# Condici贸n AND
db.inventory.find( { status: "A", qty: { $lt: 30 } } )


# Condici贸n OR con operador
db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )


# Trae el primer documento que cumpla con el filtro de acuerdo al orden natural en que los documentos se encuentren guardados en disco
db.inventory.findOne( { status: "A", qty: { $lt: 30 } } )


# ---------------------------------Update-----------------------------
# Update One
db.inventory.updateOne(
   { item: "paper" },
   {
     $set: { "size.uom": "cm", status: "P" },
     $currentDate: { lastModified: true }
   })
# Update Many
db.inventory.find({qty: {$lt: 50}})


db.inventory.updateMany(
   { "qty": { $lt: 50 } },
   {
     $set: { "size.uom": "in", status: "P" },
     $currentDate: { lastModified: true }
   }
)


db.inventory.find({qty: {$lt: 50}})


# Reemplazar un documento y conservar su _id
db.inventory.find({item: "paper"})


db.inventory.replaceOne(
   { item: "paper" },
   { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }
)


db.inventory.find({item: "paper"})
# ---------------------------------Delete-----------------------------
db.inventory.find({status: "A"})
# Borrar muchos documentos de acuerdo a un filtro
db.inventory.deleteMany({ status : "A" })


db.inventory.find({status: "D"})
# Borrar un documento
db.inventory.deleteOne( { status: "D" } )


# Borrar todos los documentos de una base datos
db.inventory.deleteMany({})

Le falta como estructura aa este curso no me gusto mucho la verdad

Para usuarios MAC, el comando de limpiar la consola de Mongo es: CMD + K