【问题标题】:Return only distinct values from one field in a MongoDB query仅从 MongoDB 查询中的一个字段返回不同的值
【发布时间】:2014-11-17 13:50:18
【问题描述】:

我一直在寻找一些例子,但似乎没有一个有效。我试图只返回一个字段的唯一值,而另一个字段的条件为真。这是我的收藏的样子:

记录

{
 _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')}}]}
    );

【问题讨论】:

  • 你在记录中的日期看起来像一个字符串,而不是一个日期类型。

标签: javascript mongodb


【解决方案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
    }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2019-08-22
    • 1970-01-01
    • 2012-04-30
    • 2023-03-09
    相关资源
    最近更新 更多