【问题标题】:Mongoose how to find all unique properties of an instance and its collection?Mongoose 如何找到一个实例及其集合的所有唯一属性?
【发布时间】:2015-05-04 16:12:23
【问题描述】:

我有一系列这样的裤子:

{
  color: 'Red',
  'material': 'Cotton',
  size: '33x44'
},
{
  color: 'Red',
  material: 'Cotton',
  size: '38x46'
} // etc.

是否可以创建一个查询来返回所有未更改的信息(materialcolor)以及所有更改的属性的列表(size)。

我猜这看起来像:

Shirts.find(sizes, {color: 'Red'}, function (err, sizes) {
  // Just pseudocode here
}).distinct()

但这只是对伪代码的一次非常粗略的尝试。

【问题讨论】:

  • 你愿意付多少钱?
  • 使用聚合框架

标签: node.js mongodb mongoose


【解决方案1】:

像下面这样的聚合查询将为您提供按颜色和材料分组的红色的唯一尺寸。

Shirts.aggregate([
    {$match: {color: 'Red'}},
    {$group: {_id: {color: '$color', material: '$material'}, sizes: {$addToSet: '$size' }}}
], function (err, result)) {
    console.log(result);
});

输出会是这样的:

{
    [
        {
            _id: {
                color: 'Red',
                material: 'Cotton'
            },
            sizes: [
                '33x44',
                '34x86'
            ]
        }
    ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多