sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Mongo puede devolver documentos con campos vacíos/faltantes al final en orden ASC?

Al devolver el resultado de db.jason.find().sort({"rank":1}) , MongoDB ordenará los documentos por tipo de "rango" y luego por valor de "rango". A los efectos del orden de clasificación, MongoDB trata los documentos en los que falta un campo como si tuvieran un tipo NULL para ese campo. El tipo NULL se ordena antes que los tipos numéricos y esto no se puede cambiar (ver http://docs.mongodb.org/manual/reference/method/cursor.sort/ para el tipo de orden incorporado). Sugeriría construir dos consultas en su lugar (una para documentos que contengan "rango" y otra para documentos sin "rango") y fusionar los resultados en su aplicación. Sin embargo, si necesita mantener esta consulta única, deberá establecer "clasificación" en todos los documentos para generar el orden que desee (por ejemplo, mediante el uso de un valor centinela con un tipo que ordena según tipos numéricos).