Está en la página 1de 33

Bases de datos avanzadas (WILLIAM RUIZ

27022023_C1_202331)
1. Área personal
2. Mis cursos
3. Bases de datos avanzadas (WILLIAM RUIZ 27022023_C1_202331)
4. Unidad de aprendizaje I
5. Actividad 1 - Diseño y operaciones CRUD en Bases de datos NoSQL

C - Diseño y operaciones CRUD en Bases de datos


NoSQL
Apertura: lunes, 27 de febrero de 2023, 00:00
Cierre: domingo, 19 de marzo de 2023, 23:59
Hecho: Ver Por hacer: Hacer un envío

Descripción de la actividad

Estimados estudiantes, bienvenidos a la primera actividad del curso Bases de datos


avanzadas

La siguiente actividad pretende acercarlos de manera práctica a los conceptos de


bases de datos NoSQL a través de la solución de un caso práctico.  Para el
desarrollo de esta actividad, tenga en cuenta lo siguiente:

1. La actividad se debe realizar en equipos de máximo 3 estudiantes.

Leer los capítulos 1 y 2 del libro: (Clic para abrir la bibliografía de la unidad .)


Sarasa, A. (2016). Introducción a las bases de datos NoSQL usando MongoDB.
Editorial UOC.

https://elibro.net/es/ereader/biblioibero/58524

3. Desarrollar el modelo de una base de datos MongoDb que permita la gestión


de los participantes a un torneo deportivo, (deportistas, entrenadores, árbitros,
encuentros deportivos, resultados y tabla de posiciones). Ustedes escogen el
tipo de evento deportivo que deseen trabajar, el cual debe ser real y tener
disponible los resultados y detalles del torneo deportivo.
4. Subir la actividad en el enlace que corresponde para la entrega de la
tarea, opcionalmente, el equipo de trabajo podrá indicar el link del repositorio
GitHub o GitLab donde cargaron su actividad.

Entregable

Entregables: Un documento pdf  o los archivos correspondientes con los


siguientes entregables que estarán alojado en el repositorio GitHub o GitLab que el
tutor les indicará.

1. Documento de requerimientos: Explicando las reglas del torneo deportivo


en cuanto a deportistas, encuentros, árbitros y puntos de resultados y a los
informes requeridos.
2. Diseño de las bases de datos en el repositorio Github o GitLab que el
tutor les indique.  La BD debe contener mínimo cinco colecciones y debe
estar acorde al documento de requerimientos.
3. Video (máximo 5 minutos) explicando el proyecto y justificando el
diseño. El video debe ser claro y preciso, adicionalmente deben participar
todos los integrantes del equipo.

El log del repositorio Git debe evidenciar el trabajo realizado por el grupo de
trabajo.

Liga de Campeones de la UEFA 2022-23

Link del torneo:


https://es.wikipedia.org/wiki/Liga_de_Campeones_de_la_UEFA_2022-23

BASE DE DATOS: TORNEO

COLECCIONES:

Deportistas:

Del equipo de futbol Nápoles:

Db.deportistas.insertMany(
[
{
"Id_jugador": 1,
"nombre": "Alex Meret",
"edad": 25,
"posicion": "Portero",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 3,
"nombre": "Min-Jae Kim",
"edad": 26,
"posicion": "Defensa",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 22,
"nombre": "Giovanni Di Lorenzo",
"edad": 29,
"posicion": "Defensa",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 17,
"nombre": "Matias Olivera",
"edad": 25,
"posicion": "Defensa",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 13,
"nombre": "Amir Rrahmani",
"edad": 29,
"posicion": "Defensa",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 7,
"nombre": "Eljif Elmas",
"edad": 23,
"posicion": "Centrocampista",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 20,
"nombre": "Piotr Zielinski",
"edad": 28,
"posicion": "Centrocampista",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 68,
"nombre": "Stanislav Lobotka",
"edad": 28,
"posicion": "Centrocampista",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 11,
"nombre": "Hirving Lozano",
"edad": 27,
"posicion": "Centrocampista",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 9,
"nombre": "Victor Osimhen",
"edad": 24,
"posicion": "Delantero",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 77,
"nombre": "Khvicha Kvratskhelia",
"edad": 22,
"posicion": "Delantero",
"equipo": "i",
"dateCreated": {"$date":"2023-02-28"}
}
])
Del equipo de futbol Liberpool:

Db.deportistas.insertMany (
[
{
"Id_jugador": 1,
"nombre": "Alisson Becker",
"edad": 30,
"posicion": "Portero",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 2,
"nombre": "Joe Gómez",
"edad": 25,
"posicion": "Defensa",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 21,
"nombre": "Kostas Tsimikas",
"edad": 26,
"posicion": "Defensa",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 22,
"nombre": "Calvin Ransay",
"edad": 19,
"posicion": "Defensa",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 32,
"nombre": "Joel Matip",
"edad": 31,
"posicion": "Defensa",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 3,
"nombre": "Fabinho",
"edad": 29,
"posicion": "Centrocampistas",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 7,
"nombre": "James Miner",
"edad": 37,
"posicion": "Centrocampistas",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 6,
"nombre": "Thiago Alcántamara",
"edad": 31,
"posicion": "Centrocampistas",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 8,
"nombre": "Naby Keita",
"edad": 28,
"posicion": "Centrocampistas",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 9,
"nombre": "Roberto Fermino",
"edad": 31,
"posicion": "Delantero",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 11,
"nombre": "Mohamed Salah",
"edad": 30,
"posicion": "Delantero",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
}
])
Del equipo de futbol Ajax:

Db.deportistas.insertMany (
[
{
"Id_jugador": 12,
"nombre": "Jerónimo Rulli",
"edad": 30,
"posicion": "Portero",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 2,
"nombre": "Jurriën Timber",
"edad": 21,
"posicion": "Defensa",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 3,
"nombre": "Calvin Bassey",
"edad": 23,
"posicion": "Defensa",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 15,
"nombre": "Devyne Rensch",
"edad": 20,
"posicion": "Defensa",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 5,
"nombre": "Owen Wijndal",
"edad": 23,
"posicion": "Defensa",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 4,
"nombre": "Edson Álvarez",
"edad": 25,
"posicion": "Mediocampista",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 8,
"nombre": "Kenneth Taylos",
"edad": 20,
"posicion": "Mediocampista",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 7,
"nombre": "Steven Bergwijn",
"edad": 25,
"posicion": "Mediocampista",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}

},
{
"Id_jugador": 23,
"nombre": "Steven Berhuis",
"edad": 31,
"posicion": "Mediocampista",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}

},
{
"Id_jugador": 10,
"nombre": "Dusan Tadic",
"edad": 31,
"posicion": "Mediocampista",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}

},
{
"Id_jugador": 9,
"nombre": "Brian Brobbey",
"edad": 21,
"posicion": "Delantero",
"equipo": "Ajax",
"dateCreated": {"$date":"2023-02-28"}

}
])
Del equipo de futbol Rangers:

Db.deportistas.insertMany (
[
{
"Id_jugador": 1,
"nombre": "Allan McGregor",
"edad": 41,
"posicion": "Portero",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 6,
"nombre": "Connor Goldson",
"edad": 30,
"posicion": "Defensa",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 26,
"nombre": "Ben Davies",
"edad": 27,
"posicion": "Defensa",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 2,
"nombre": "James Tavernier",
"edad": 31,
"posicion": "Defensa",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 31,
"nombre": "Borna Barisio",
"edad": 30,
"posicion": "Defensa",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 4,
"nombre": "Jhon Lundstram",
"edad": 29,
"posicion": "Mediocampistas",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 17,
"nombre": "Rabbi Matondo",
"edad": 22,
"posicion": "Mediocampistas",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 18,
"nombre": "Glen Kamara",
"edad": 27,
"posicion": "Mediocampistas",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 25,
"nombre": "Kemar Roofe",
"edad": 30,
"posicion": "Delantero",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 20,
"nombre": "Alfredo Morelos",
"edad": 26,
"posicion": "Delantero",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_jugador": 7,
"nombre": "Lenis Hagi",
"edad": 24,
"posicion": "Delantero",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
}
]
Equipos:

Db.deportistas.insertMany (
[{"Id_equipo": "AJX",
"nombre": "Ajax",
"pais": "Amsterdam, Paises Bajos"
},
{"Id_equipo": "LFC",
"nombre": "Liberpool",
"pais": "Liberpool, Inglaterra"
},
{"Id_equipo": "NAP",
"nombre": "Napoles",
"pais": "Lapoles, Italia"
},
{"Id_equipo": "RAN",
"nombre": "Rangers",
"pais": "Glasgow, Escocia"
}]
)
Encuentros:

Db.encuentros.insertMany (
[
{
"estadio": "Johan Cruyff Arena",
"fecha": {"$date":"2022-10-26"} ,
"equipo_local": {
"nombre": "Ajax",
"goles": 0
},
"equipo_visitante": {
"nombre": "Liberpool",
"goles": 3
},
"arbitro": {
"nombre": "Sanchez Martínez"
}
},
{
"estadio": "Johan Cruyff Arena",
"fecha": {"$date":"2022-10-04"} ,
"equipo_local": {
"nombre": "Ajax",
"goles": 1
},
"equipo_visitante": {
"nombre": "Napoles",
"goles": 6
},
"arbitro": {
"nombre": "François Letexier"
}
},
{
"estadio": "Johan Cruyff Arena",
"fecha": {"$date":"2022-09-07"} ,
"equipo_local": {
"nombre": "Ajax",
"goles": 4
},
"equipo_visitante": {
"nombre": "Rangers",
"goles": 0
},
"arbitro": {
"nombre": "Tobias Stieler"
}
},
{
"estadio": "Anfield",
"fecha": {"$date":"2022-10-26"} ,
"equipo_local": {
"nombre": "Liberpool",
"goles": 2
},
"equipo_visitante": {
"nombre": "Ajax",
"goles": 1
},
"arbitro": {
"nombre": "Artur Soares Dias"
}
},
{
"estadio": "Anfield",
"fecha": {"$date":"2022-11-01"} ,
"equipo_local": {
"nombre": "Liberpool",
"goles": 2
},
"equipo_visitante": {
"nombre": "Napoles",
"goles": 0
},
"arbitro": {
"nombre": "Tobias Stieler"
}
},
{
"estadio": "Anfield",
"fecha": {"$date":"2022-10-04"} ,
"equipo_local": {
"nombre": "Liberpool",
"goles": 2
},
"equipo_visitante": {
"nombre": "Rangers",
"goles": 0
},
"arbitro": {
"nombre": "Clément Turpin"
}
},
{
"estadio": "Estadio Diego Armando Maradona",
"fecha": {"$date":"2022-10-12"} ,
"equipo_local": {
"nombre": "Napoles",
"goles": 4
},
"equipo_visitante": {
"nombre": "Ajax",
"goles": 2
},
"arbitro": {
"nombre": "Felix Zwayer"
}
},
{
"estadio": "Estadio Diego Armando Maradona",
"fecha": {"$date":"2022-09-07"} ,
"equipo_local": {
"nombre": "Napoles",
"goles": 4
},
"equipo_visitante": {
"nombre": "Liberpool",
"goles": 1
},
"arbitro": {
"nombre": "Del Cerro Grande"
}
},
{
"estadio": "Estadio Diego Armando Maradona",
"fecha": {"$date":"2022-10-26"},
"equipo_local": {
"nombre": "Napoles",
"goles": 3
},
"equipo_visitante": {
"nombre": "Rangers",
"goles": 0
},
"arbitro": {
"nombre": "Halil Umut Meler"
}
},
[
{
"estadio": "Ibrox Stadium",
"fecha": {"$date":"2022-11-01"} ,
"equipo_local": {
"nombre": "Rangers",
"goles": 1
},
"equipo_visitante": {
"nombre": "Ajax",
"goles": 3
},
"arbitro": {
"nombre": "Glenn Nyberg"
}
},
{
"estadio": "Ibrox Stadium",
"fecha": {"$date":"2022-10-12"} ,
"equipo_local": {
"nombre": "Rangers",
"goles": 1
},
"equipo_visitante": {
"nombre": "Liberpool",
"goles": 7
},
"arbitro": {
"nombre": "Slavko Vinčić"
}
},
{
"estadio": "Ibrox Stadium",
"fecha": {"$date":"2022-10-14"},
"equipo_local": {
"nombre": "Rangers",
"goles": 0
},
"equipo_visitante": {
"nombre": "Napoles",
"goles": 3
},
"arbitro": {
"nombre": "Mateu Lahoz"
}
}
]
Árbitros:

Db.arbitros.insertMany (

[
{
"nombre": "Sanchez Martínez",
"nacionalidad": "España",
"experiencia": "Primera División de España 2013"
},
{
"nombre": "François Letexier",
"nacionalidad": "Francia",
"experiencia": "FIFA referee since 2017"
},
{
"nombre": "Tobias Stieler",
"nacionalidad": "Aleman",
"experiencia": "FIFA referee, and is ranked as a UEFA"
},
{
"nombre": "Artur Soares Dias",
"nacionalidad": "Portugués",
"experiencia": "FIFA referee 2010, and is ranked as a UEFA"
},
{
"nombre": "Clément Turpin",
"nacionalidad": "Frances",
"experiencia": "Turpin fue nombrado árbitro FIFA en 2010"
},
{
"nombre": "Felix Zwayer",
"nacionalidad": "Aleman",
"experiencia": "Es un árbitro FIFA, y se encuentra dentro del grupo élite de la UEFA
2012"
},
{
"nombre": "Carlos del Cerro Grande",
"nacionalidad": "Español",
"experiencia": "Pertenece al Comité de Árbitros de la Comunidad de Madrid
2011."
},
{
"nombre": "Halil Umut Meler",
"nacionalidad": "Turkish",
"experiencia": "FIFA listed since 2017 and a member of the UEFA Elite since 2022"
},
{
"nombre": "Glenn Nyberg",
"nacionalidad": "Swedish",
"experiencia": "Allsvenskan referee since 2013 and a full international referee for
FIFA since 2016"
},
{
"nombre": "Slavko Vinčić",
"nacionalidad": "Slovenian",
"experiencia": "Referee for FIFA since 2010. Vinčić went to UEFA Euro 2012"
},
{
"nombre": "Mateu Lahoz",
"nacionalidad": "Español",
"experiencia": "Referee with experience in several editions of the FIFA World Cup
2008"
}

])
Entrenadores:

Db.entrenadores.insertMany (

[
{
"Id_entrenador": 1,
"nombre": "Luciano Spalletti",
"equipo": "Napoles",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_entrenador": 2,
"nombre": "Jurgen Klopp",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_entrenador": 3,
"nombre": "Erik ten Hag",
"equipo": "Liberpool",
"dateCreated": {"$date":"2023-02-28"}
},
{
"Id_entrenador": 4,
"nombre": "Dalcio Giovagnoli ",
"equipo": "Rangers",
"dateCreated": {"$date":"2023-02-28"}
}
])
Tabla de Posiciones:

Db.posiciones.insertMany (

[
{
"posicion" : 1,
"Equipo" : "Napoles",
"Puntos" : 15
},
{
"posicion" : 2,
"Equipo" : "Liberpool",
"Puntos" : 15
},
{
"posicion" : 3,
"Equipo" : "Ajax",
"Puntos" : 15
},
{
"posicion" : 4,
"Equipo" : "Rangers",
"Puntos" : 0
}
])
Tabla de Resultados:

Db.resultados.insertMany (

[
{
"equipo": { -- Se podría quitar para hacerlo más sencillo (como documento
embebido)
"nombre": "Napoles",
"resultados" : {"Pts": 15,
"PJ": 6,
"PG" : 5,
"PE" : 0,
"PP" : 1,
"GF" : 17,
"gc" : 6,
"Dif" : 11
}
}
},
{
"equipo": {
"nombre": "Liberpool",
"resultados" : {"Pts": 15,
"PJ": 6,
"PG" : 5,
"PE" : 0,
"PP" : 1,
"GF" : 17,
"gc" : 6,
"Dif" : 11
}
}
},
{
"equipo": {
"nombre": "Ajax",
"resultados" : {"Pts": 6,
"PJ": 6,
"PG" : 2,
"PE" : 0,
"PP" : 4,
"GF" : 11,
"gc" : 16,
"Dif" : -5
}
}
},
{
"equipo": {
"nombre": "Rangers",
"resultados" : {"Pts": 0,
"PJ": 6,
"PG" : 0,
"PE" : 0,
"PP" : 6,
"GF" : 2,
"gc" : 22,
"Dif" : -20
}
}
}

])
COMANDOS MONGODB

Insert a Single Document

db.collection.insertOne()  inserts a single document into a collection. 

db.movies.insertOne(
{
title: "The Favourite",
genres: [ "Drama", "History" ],
runtime: 121,
rated: "R",
year: 2018,
directors: [ "Yorgos Lanthimos" ],
cast: [ "Olivia Colman", "Emma Stone", "Rachel Weisz" ],
type: "movie"
}
)

Insert Multiple Documents

db.collection.insertMany()  can insert multiple documents into a collection.

use sample_mflix
db.movies.insertMany([
{
title: "Jurassic World: Fallen Kingdom",
genres: [ "Action", "Sci-Fi" ],
runtime: 130,
rated: "PG-13",
year: 2018,
directors: [ "J. A. Bayona" ],
cast: [ "Chris Pratt", "Bryce Dallas Howard", "Rafe Spall" ],
type: "movie"
},
{
title: "Tag",
genres: [ "Comedy", "Action" ],
runtime: 105,
rated: "R",
year: 2018,
directors: [ "Jeff Tomsic" ],
cast: [ "Annabelle Wallis", "Jeremy Renner", "Jon Hamm" ],
type: "movie"
}
])

Delete Documents
Delete All Documents

To delete all documents from a collection, pass an empty filter document  {}  to


the  db.collection.deleteMany()  method.

db.movies.deleteMany({})

Delete All Documents that Match a Condition

db.movies.deleteMany( { title: "Titanic" } )

Delete Only One Document that Matches a Condition

db.movies.deleteOne( { cast: "Brad Pitt" } )

Update Documents
Update Operator Syntax

{
<update operator>: { <field1>: <value1>, ... },
<update operator>: { <field2>: <value2>, ... },
...
}
Update a Single Document

Use the  db.collection.updateOne()  method to update the first document that


matches a specified filter.

use sample_mflix

db.movies.updateOne( { title: "Tag" },

$set: {

plot: "One month every year, five highly competitive friends

hit the ground running for a no-holds-barred game of tag"

{ $currentDate: { lastUpdated: true } }

})

Update Multiple Documents

Use the  db.collection.updateMany()  to update all documents that match a


specified filter.

use sample_airbnb

db.listingsAndReviews.updateMany(

{ security_deposit: { $lt: 100 } },

{
$set: { security_deposit: 100, minimum_nights: 1 }

Replace a Document

To replace the entire content of a document except for the  _id  field, pass an
entirely new document as the second argument to  db.collection.replaceOne() .

To replace the first document from the  sample_analytics.accounts  collection


where  account_id: 371138 :

db.accounts.replaceOne(
{ account_id: 371138 },
{ account_id: 893421, limit: 5000, products: [ "Investment", "Brokerage" ] }
)

Run the following command to read your updated document:

db.accounts.findOne( { account_id: 893421 } )

Query Documents
Use the  db.collection.find()  method in the MongoDB Shell to query documents
in a collection.

Read All Documents in a Collection

To return all documents from the  sample_mflix.movies  collection:

use sample_mflix
db.movies.find()
This operation is equivalent to the following SQL statement:

SELECT * FROM movies

Specify Equality Condition

To return all movies where the  title  equals  Titanic  from


the  sample_mflix.movies  collection:

use sample_mflix
db.movies.find( { "title": "Titanic" } )

This operation corresponds to the following SQL statement:

SELECT * FROM movies WHERE title = "Titanic"

Specify Conditions Using Query Operators


{ <field1>: { <operator1>: <value1> }, ... }

EXAMPLE

To return all movies from the  sample_mflix.movies  collection which are either
rated  PG  or  PG-13 :

use sample_mflix

db.movies.find( { rated: { $in: [ "PG", "PG-13" ] } } )

This operation corresponds to the following SQL statement:

SELECT * FROM movies WHERE rated in ("PG", "PG-13")

Specify Logical Operators ( AND  /  OR )


To return movies which were released in Mexico and have an IMDB rating of at
least 7:
use sample_mflix
db.movies.find( { countries: "Mexico", "imdb.rating": { $gte: 7 } } )

Use the  $or  operator to specify a compound query that joins each clause with a
logical  OR  conjunction so that the query selects the documents in the collection that match
at least one condition.

To return movies from the  sample_mflix.movies  collection which were released in


2010 and either won at least 5 awards or have a  genre  of  Drama :

use sample_mflix
db.movies.find( {
year: 2010,
$or: [ { "awards.wins": { $gte: 5 } }, { genres: "Drama" } ]
})

…or create a new repository on the command line


echo "# Bases-de-datos-avanzadas" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/msantia3/Bases-de-datos-avanzadas.git
git push -u origin main
…or push an existing repository from the command line
git remote add origin https://github.com/msantia3/Bases-de-datos-avanzadas.git
git branch -M main
git push -u origin main
Encuentro Sincronico 1.

Marzo 02 / 2023.

Bases de Datos NoSql

También podría gustarte