MongoDB $匹配和$ group问题

时间:2016-01-08 08:35:10

标签: mongodb

我试图获得匹配计数因为我遇到了一些问题所以我会将find().count()改为aggregate()方法。

我的问题是,当我添加我的$ match时,它不会返回任何计数,如果我删除它的工作正常。

db.getCollection('product').aggregate(
   [
      { $match: { 'Store.Title': { $regex: '/apc/', $options: 'gi' } } },
      { $group: { _id: null, count: { $sum: 1 } } }
   ]
)

有人可以帮我解释我在这里做错了什么吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试先使用 RegExp 对象创建正则表达式对象,然后在管道中使用它:

var apc_match = new RegExp('apc', 'gi');

db.getCollection('product').aggregate(
   [
      { $match: { 'Store.Title': apc_match } },
      { $group: { _id: null, count: { $sum: 1 } } }
   ]
);

OR

db.getCollection('product').aggregate(
   [
      { $match: { 'Store.Title': { $regex: 'apc', $options: 'gi' } } },
      { $group: { _id: null, count: { $sum: 1 } } }
   ]
);

OR

db.getCollection('product').aggregate(
   [
      { $match: { 'Store.Title': /apc/gi } },
      { $group: { _id: null, count: { $sum: 1 } } }
   ]
);