MongoDB - 按输入中关键字的最大数量排序

时间:2017-07-04 13:41:29

标签: arrays mongodb aggregation-framework

我希望构建一个mongo查询,它将根据输入数组中指定的重复关键字的数量对文档进行排序。我的文档如下所示

{
    "_id" : 1,
    "name" : "invoice",
    "rules" : [ 
        {
            "_any" : [ 
                "invoice", 
                "invoices", 
                "total", 
                "order", 
                "bill"
            ]
        }
    ]
}
{
    "_id" : 2,
    "name" : "Terms of Service",
    "rules" : [ 
        {
            "_any" : [ 
                "rule", 
                "rules", 
                "terms"
            ]
        }
    ]
}

因此,如果我的输入数组包含以下关键字

[ 'invoice',
  'invoice',
  'order',
  'bill',
  'bill',
  'bill',
  'bill',
  'bill',
  'terms'
 ]

Mongo应该显示_id的结果:首先是1,然后是_id:2,因为输入数组包含属于_id的最大关键字数:1

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以将索引放入数组中。 0:“发票”, 1:“账单”, 2:“订单”, 3:“发票”

然后使用array.length以正确的顺序放置它会很容易。