Obtenga valores de registros distintos

¿Hay alguna forma de consultar objetos que no tienen los mismos valores en algún campo? Por ejemplo, tengo registros:

{ id : 1, name : "my_name", salary : 1200 } { id : 2, name : "my_name", salary : 800 } { id : 3, name : "john", salary : 500 } 

Consulta: encuentra todo con NOT_THE_SAME (nombre)

Solo quiero registros con id 1 y 3 porque especifiqué que no quiero registros con el mismo valor en name campo o 2 y 3, no importa en esta situación.

Puede usar db.collection.distinct para recuperar una matriz de valores únicos:

 > db.test.distinct("name") [ "my_name", "john" ] 

También puede usar una oración distinta con la colección filtrada. Por ejemplo, puede obtener valores distintos de nombres de salarios superiores a 800 con la siguiente consulta:

 db.test.distinct("name", { "salary": { $gt: 800 } }) 
 db.test.aggregate([{$group: {_id: "$name", salary: {$max: "$salary"}}}]) 

debería enumerar todos los nombres con sus salarios .

$max devuelve el salario más alto por elemento. También puede elegir $first , etc., ver https://docs.mongodb.com/manual/reference/operator/aggregation/group/#accumulator-operator .

 db.runCommand ( { distinct: "CollectionName", key: "key", query: { "createdDate": { $gte:new ISODate("2017-04-04T23:59:59Z"), $lte:new ISODate("2017-04-25T23:59:59Z")}} } ) 

esta consulta ayuda a encontrar datos en la recostackción, recuperará el valor de la clave de todos los documentos que satisfagan la condición de entre una fecha y otra