基于mongoose中聚合方法内部名称的部分获取数据

时间:2015-12-07 05:46:12

标签: regex node.js mongodb mongoose

我有一个应用程序,我需要检查和检索具有指定名称的数据。

我使用了mongoose服务来执行此操作,服务如下:

var query = { $or: [] };
var queryAnd = { $and: [] };

queryAnd.$and.push({"Name":new RegExp("test", 'i')});
queryAnd.$and.push({$ne: ['$Value', "Deleted"]});

model.aggregate(
[
    {$project:{
        _id: '$Value',
        sValue: "$Value",
        SCount: {$cond: [queryAnd, 1, 0]}
    }},
    {$group: { _id: '$sValue', count: {$sum: '$SCount'} }},
    {$sort: {_id: 1}}
], function (err, sResult) {
    res.send(sResult);
});

在这里,我使用了'queryAnd',因为可能有很多'和'和'或'条件。

删除'queryAnd。$ and.push({“Name”:new RegExp(“test”,'i')})'给出正确的结果。但我还需要检查名称值。这在find()函数中有效,但不在'aggregate'

我尝试过以下查询但没有效果:

queryAnd.$and.push({$in: ['$Name', "test"]});
queryAnd.$and.push({'Name':{$in:"test"}});
queryAnd.$and.push({"Name":{$elemMatch:{$eq:"test", $exists:true}}});
queryAnd.$and.push({ "$Name": { "$regex": "test", "$options": "i" } }]});

我应该怎样才能使用..提前感谢..

0 个答案:

没有答案