Подтвердить что ты не робот

Получать различные значения записей

Есть ли способ запроса объектов с не одинаковыми значениями в каком-либо поле? Например, у меня есть записи:

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

Запрос: найти все с NOT_THE_SAME (имя)

Мне просто нужны записи с идентификаторами 1 и 3, потому что я указал, что мне не нужны записи с одинаковым значением в поле name или 2 и 3, в этой ситуации это не имеет значения.

4b9b3361

Ответ 1

Вы можете использовать db.collection.distinct, чтобы вернуть массив уникальных значений:

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

Ответ 2

Вы также можете использовать отдельное предложение с фильтрованной коллекцией. Например, вы можете получить разные значения имен с зарплатой более 800 со следующим запросом:

db.test.distinct("name", { "salary": { $gt: 800 } })

Ответ 3

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

этот запрос помогает находить данные в коллекции, извлекает значение ключа из всех документов, которые удовлетворяют условию между датой