Definición
$gt$gtselecciona aquellos documentos donde el valor del campo especificado sea mayor que (es decir,>) el valor especificado.Para la mayoría de los tipos de datos, Los operadores de comparación solo realizan comparaciones en campos donde el tipo BSON coincide con el tipo del valor de la consulta. MongoDB admite comparaciones cruzadas BSON limitadas mediante el corchete de tipos.
Compatibilidad
Puedes usar $gt para implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El operador $gt tiene la siguiente forma:
{ field: { $gt: value } }
Ejemplos
Los siguientes ejemplos utilizan la colección inventory. Crear la colección:
db.inventory.insertMany( [ { item: "nuts", quantity: 30, carrier: { name: "Shipit", fee: 3 } }, { item: "bolts", quantity: 50, carrier: { name: "Shipit", fee: 4 } }, { item: "washers", quantity: 10, carrier: { name: "Shipit", fee: 1 } } ] )
Empareje los campos del documento
Seleccione todos los documentos en la colección inventory donde quantity sea mayor que 20:
db.inventory.find( { quantity: { $gt: 20 } } )
Ejemplo de salida:
{ _id: ObjectId("61ba25cbfe687fce2f042414"), item: 'nuts', quantity: 30, carrier: { name: 'Shipit', fee: 3 } }, { _id: ObjectId("61ba25cbfe687fce2f042415"), item: 'bolts', quantity: 50, carrier: { name: 'Shipit', fee: 4 } }
Realice una actualización basada en los campos del documento incrustado
El siguiente ejemplo establece el campo price en función de una comparación $gt con un campo en un documento incrustado.
db.inventory.updateOne( { "carrier.fee": { $gt: 2 } }, { $set: { "price": 9.99 } } )
Ejemplo de salida:
{ _id: ObjectId("61ba3ec9fe687fce2f042417"), item: 'nuts', quantity: 30, carrier: { name: 'Shipit', fee: 3 }, price: 9.99 }, { _id: ObjectId("61ba3ec9fe687fce2f042418"), item: 'bolts', quantity: 50, carrier: { name: 'Shipit', fee: 4 } }, { _id: ObjectId("61ba3ec9fe687fce2f042419"), item: 'washers', quantity: 10, carrier: { name: 'Shipit', fee: 1 } }
Esta updateOne() operación busca un documento incrustado, carrier, con un subcampo llamado fee. Establece { price: 9.99 } en el primer documento que encuentra donde fee tiene un valor mayor que 2.
Para establecer el valor del campo price en todos los documentos donde carrier.fee sea mayor que 2, utilice updateMany().