2014-11-16 2 views
0

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

Записи

{ 
_id: "XuZcMm2MGCr7CshB5"<br> 
clientAvailability: "Direct Solutions<br> 
"enhancementId: "D08F817L"<br> 
enhancementName: "Allow TN Transfer"<br> 
follow: false<br> 
impactedProducts: Array[4]<br> 
internal: false<br> 
like: false<br> 
releaseDate: Wed Aug 27 2014 00:00:00 GMT-0500 (CDT)<br> 
requestingMso: "Internal"<br> 
requestingProduct: "Voice Services"<br> 
required: false<br> 
} 

Я попытался ограничить мой вопрос только документы, где «ReleaseDate» находится в 2014 году и вернуть все уникальные значения «clientAvailability» для эти записи. Почему это не работает? Я ноб, поэтому я уверен, что мне не хватает чего-то простого. Заранее спасибо!

return Records.distinct('clientAvailability', { $and: [{releaseDate: {$gte: new Date('Jan 1, 2014'), $lte: new Date('Nov 26,2014')}}]} 
    ); 
+0

Ваша дата в записи выглядит как строка, а не тип даты. –

ответ

1

distinct является функцией асинхронной, так что вы должны предоставить обратный вызов, чтобы получить результаты. Вы сейчас просто возвращаете объект Query, который он представляет. Вам также не нужно использовать оператора $and.

Records.distinct('clientAvailability', 
    {releaseDate: {$gte: new Date('Jan 1, 2014'), $lte: new Date('Nov 26,2014')}}, 
    function (err, result) { 
     // result contains the array of unique values 
    } 
); 
Смежные вопросы