- $and => que cumpla las dos o más condiciones dadas.
- $or => los que cumplan al menos una condición.
- $nor => los que no cumplan con ninguna condición.
- $not => excluye un elemento en especifico y no tiene forma de array
Fundamentos de MongoDB
¿Qué es Mongo DB?
Bases de datos NoSQL
¿Qué son los documentos y colecciones?
Creando tu primer BD
Usando Mongo Compass
Mongo en VSCode
Instalando Docker
Mongo con Docker
Conectándonos usando mongosh
Json vs. Bson
CRUD
Insertando un documento
Insertando varios documentos
Actualizando un documento
Actualizando varios documentos
Array Update Operators
Update or insert
Elimando documentos
Operadores
Usando $eq y $ne
Usando $gt, $gte, $lt, $lte
Ejemplos de $gt, $gte, $lt, $lte
Usando $regex
Projection
Operadores para Arrays
Operadores lógicos
Expresive operator
Query in subdocs
Herramientas comunes al trabajar con MongoDB
Aggregation Framework
Sort, limit y skip
Atlas features
Toma el Curso de Modelamiento de Datos en MongoDB
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Nicolas Molina
Aportes 8
Preguntas 3
Y esta es la forma utilizando el $and implícito y $or explícito.
db.routes.find({
airplane: "E70",
$or: [
{ dst_airport: "BOG" },
{ src_airport: "BOG" }
]
})
use ("sample_training")
// and de forma implicita
// db.inspections.find({
// sector: "Tax Preparers - 891",
// result: "Unable to Locate"
// }).count()
// and de forma exlicita
// $and va dentro de un array [{}, {}, {}]
// db.inspections.find({
// $and: [
// {sector: "Tax Preparers - 891"},
// {result: "Unable to Locate"}
// }]
// }).count() 6
// operadores de aca en adelante tienen que ser de forma explicita, no vienen incorporados como and
// or [{}, {}, {}]
// db.inspections.find({
// $or: [
// {sector: "Tax Preparers - 891"},
// {result: "Unable to Locate"}
// ]
// }).count() 892
// $nor [{}, {}, {}] para que no incluya ciertos valores
// db.inspections.find({
// $nor: [
// {sector: "Tax Preparers - 891"},
// {result: "Unable to Locate"}
// ]
// }).count() 79155
// db.inspections.find({
// $nor: [
// {result: "No Violation Issued"},
// {result: "Unable to Locate"}
// ]
// } ,{ // projection para que solo traiga los resultados deseados
// result: 1,
// _id: 0
// }
// )
// not no recibe un array directamente como parte de su ejecucion, se aplic hahcia un atributo
// db.inspections.find({
// result: { $not: {$regex: /Unable to Locate/} }
// })
Utilizando el $nor con projection explicito, me parece que asi es mejor.
db.inspections.find({
$nor:[
{result:"No Violation Issued"},
{result:"Unable to Locate"}
]
}).projection({result:1,_id:0})
Podemos utilizar wildcards para los casos en los que no recordamos exactamente el nombre de esta forma:
use("sample_training")
db.inspections.find({
sector: /Tax Preparers/i
})
$and implícito y explícito
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?