我正在使用mongoose在节点中操作mongodb。现在我必须查询Post表中的条目,其中标签不包含任何标签,如inc:___,inc:gdc,exc:abc,exc:57uyht7,所有其他标签都允许像(test,card,check)
PostModel.Post.find({
$where:this.activeFlag==true && (this.tags!= null && this.tags != /^inc:/ && this.tags !=/^exc:/)
}), function(err, stack) {
if (!err) {
logger.debug('Posts found successfully.');
} else {
logger.error('Problem in finding posts, error :' + err);
}
});
但这不起作用..我的查询也用inc:dbgh获取条目。 谁能帮我? 提前谢谢。
答案 0 :(得分:1)
根据Mongo docs,您应该将字符串或javascript函数传递给$where
,然后传递javascript表达式,并对其进行评估。
此外,您的查询可以简化为
PostModel.Post.find({
activeFlag: true,
tags: {
$exists: true,
$not: /^(inc:|ecx:)/
}
}, function(err, stack) {
if (!err) {
logger.debug('Posts found successfully.');
} else {
logger.error('Problem in finding posts, error :' + err);
}
});