Pregunta

similar a

- Agregación: Agregar opción a $ Descansar para emitir el índice de matriz

- Obtenga índice de un artículo dentro de la consulta de MongoDB

Tengo este caso de uso.

Clasificaciones de frutas más sabrosas:

{"date": "Jan 1st",
"fruit_ranking": ["Apple", "Orange", "Grape", "Kiwi", "Mango", "Pear"]},
{"date": "Jan 2nd",
"fruit_ranking": ["Orange", "Grape", "Kiwi", "Pear", "Apple"]}
.....
{"date": "Dec 31st",
"fruit_ranking":  ["Kiwi", "Apple", "Grape", "Mango", "Pear"]}

Estoy tratando de agarrar el ranking de "Pera" por cada día 1 de enero - 31 de diciembre y ahora mismo necesito tomar todas las matrices de vuelta y hacer indexOF En mi solicitud. Aceleraría mi solicitud bastante, si hay alguna forma de hacerlo en mongodb y simplemente devolver el índice de "pera" en lugar de toda la matriz.

Miré en mapa reduce pero el documentación parece sugerir que necesita tener una función reducida que no funciona.

también miró en Marco de agregación Pero este JIRA Boleto parece sugerir que aún no se implementa.

Por último, miré en Scripting del lado del servidor Pero parece demasiado avanzado para un caso de uso simple.

¡Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

No he probado este código, pero debería funcionar.

Suponiendo el nombre de DB donde se almacena esto es tastyFruits ...

tastyFruits.find({}).forEach(function(a){
console.log("Date: " + a.date);
console.log("Pear rating: " + a.fruit_ranking.indexOf("Pear"));
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top