que español datos borrar mongodb

español - mongodb consulta tanto con AND como con OR



mongodb español (4)

Creo que $ y solo se admite en MongoDB v2.0 +. Me sorprende que la consola haya aceptado la expresión en primer lugar. Intentaré recrear contra un servidor 1.8 que tengo.

Verifique también la Documentación de consulta avanzada de 10Gen por $and .

Actualizar

Ingresé sus datos de muestra en un servidor MongoDB v1.8xy v2.0x. La consulta funciona en v2.0x y falla en v1.8x. Esto confirma mis sospechas (y las de Miikka) de que el problema es con $and y su versión de servidor.

He encontrado una solución inteligente (posiblemente) para esto en la Web here . Espero que esto ayude.

-SethO

¿Puedo usar la combinación de OR y AND en las consultas mongodb?

el siguiente código no funciona como se esperaba

db.things.find({ $and:[ {$or:[ {"first_name" : "john"}, {"last_name" : "john"} ]}, {"phone": "12345678"} ]});

contenido de la base de datos:

> db.things.find(); { "_id" : ObjectId("4fe8734ac27bc8be56947d60"), "first_name" : "john", "last_name" : "hersh", "phone" : "2222" } { "_id" : ObjectId("4fe8736dc27bc8be56947d61"), "first_name" : "john", "last_name" : "hersh", "phone" : "12345678" } { "_id" : ObjectId("4fe8737ec27bc8be56947d62"), "first_name" : "elton", "last_name" : "john", "phone" : "12345678" } { "_id" : ObjectId("4fe8738ac27bc8be56947d63"), "first_name" : "eltonush", "last_name" : "john", "phone" : "5555" }

al consultar la consulta anterior - no consigo nada!

> db.things.find({$and:[{$or:[{"first_name" : "john"}, {"last_name" : "john"}]},{"phone": "12345678"}]}); >

Estoy usando mongo 1.8.3


Esto es posible de la siguiente manera (mongodb 3.4)

Aquí está el buen ejemplo.

https://docs.mongodb.com/manual/reference/operator/query/and/#and-queries-with-multiple-expressions-specifying-the-same-operator

db.getCollection(''tbl_menu_items'').find({ $and : [ { $or : [ { price : 0.99 }, { price : 1.99 } ] }, { $or : [ { sale : true }, { qty : { $lt : 20 } } ] } ] } )

Esta consulta seleccionará todos los documentos donde:

el valor del campo de precio es igual a 0,99 o 1,99, y el valor del campo de venta es igual a verdadero o el valor del campo de cantidad es inferior a 20.

Este es el ejemplo de $ y la condición con $ o la consulta, es decir, la coincidencia con cualquiera de las condiciones, por ejemplo

considerar siguiente consulta ...

db.getCollection(''tbl_menu_items'').find( { ''$or'': [ { ''$and'': [ { location: { ''$in'': [ ObjectId("588054c63879f2e767a1d553") ] } }, { is_ryward: 1 }, { points_reqiured_to_redeem_reward: { ''$lte'': 500 } } ] }, { ''$and'': [ { location: { ''$in'': [ ObjectId("588054c63879f2e767a1d553") ] } }, { is_freebie: 1 } ] } ] } )

Esta consulta seleccionará todos los documentos donde:

matriz de ubicación en 588054c63879f2e767a1d553 e is_ryward = 1 y points_reqiured_to_redeem_reward <500

O

matriz de ubicación en 588054c63879f2e767a1d553 y is_freebie


Más corto para usar una operación AND implícita:

db.things.find({ $or : [ {"first_name": "john"}, {"last_name": "john"} ], "phone": "12345678" })


db.things.find( { $and : [ { $or : [ {"first_name" : "john"}, {"last_name" : "john"} ] }, { "Phone":"12345678" } ] } )

Y toma una serie de 2 expresiones O , teléfono.
O toma una matriz de 2 expresiones first_name, last_name.

Y

  • O

    • nombre de pila
    • apellido
  • Número de teléfono.

Nota: Actualice a la última versión de MongoDB, si esto no funciona.