¿Por qué no puedo usar nin $, $ existe, etc. dentro de un partido de la tubería Mongo?

votos
1

He buscado alta y baja para esta respuesta y nada ha funcionado. Tengo una consulta tubería con un término partido de la siguiente manera:

$match: {
  $expr: {
    $and: [
      ....
    ]
  }
}

En el interior del $ y tengo todo tipo de condiciones usando eq $, $ en, ne $, $ gt, lt $, etc.

Sin embargo mas que trate no puedo hacer que reconozca $ o $ nin existe. Estoy intentando añadir un término donde busco una clave no existente, por ejemplo:

{ $exists: [ '$key', 0 ] }

Quiero evitar

MongoError: expresión no reconocida '$ existe'

y

MongoError: expresión no reconocida '$ nin'

¿¿Alguien puede ayudar??

Publicado el 27/11/2018 a las 16:53
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Sólo puede utilizar aggregationlos operadores dentro de la $expry de la $niny $existsson operadores de consulta no aggregationqueridos. Usar las anteriores condiciones fuera de la $exprexpresión.

Algo como

{ "$match": {
  "key": { "$exists": true },
  "$expr": {
    "$and": [
      {...}, {...}
    ]
  }
}}
Respondida el 03/12/2018 a las 18:05
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more