2012-01-12 59 views
7

¿MongoDB admite la comparación de dos campos en la misma colección mediante el uso de operadores nativos (no $ where y JavaScript)? Ya miré similarquestions y todas las respuestas usaron $ where/JavaScript.

MongoDB documentation establece claramente que:

JavaScript se ejecuta más lentamente que los operadores nativos que figuran en esta página, pero es muy flexible.

Mi principal preocupación es la velocidad y me gustaría utilizar índices si es posible. Entonces, ¿es posible comparar dos campos en MongoDB sin usar JavaScript?

+0

¿Estás absolutamente seguro de que el $ donde el operador es demasiado lento para su caso de uso? – maerics

+0

@maerics Respuesta corta - sí. Si todo lo demás falla $, será mi último recurso. Pero me gustaría mucho evitar $ where y buscar por campos indexados si es posible. –

Respuesta

2

Al leer la documentación que vincula, no parece que MongoDB tenga la capacidad de comparar dos propiedades del documento utilizando solo operadores nativos.

Quizás pueda modificar los documentos en sí (y/o el código que guarda los documentos) para incluir una propiedad booleana con el valor resultante de la comparación (anticipada) y luego simplemente consultar esa nueva propiedad según sea necesario . Incluso podría indexarlo para un mejor rendimiento.

+0

Gracias por su aporte, pero eso realmente no resuelve mi problema. –

Cuestiones relacionadas