我正在尝试查找存在字符串stackTrace类型的字段但不包含“ PROVIDER_SOURCE”或“ providers”的文档
计数似乎合乎逻辑:
db.GroovyScriptResult.find({stackTrace:{$exists: true, $not: /PROVIDER_SOURCE/}}).count();
60
db.GroovyScriptResult.find({stackTrace:{$exists: true, $not: /PROVIDER_SOURCE/, $not: /providers/}}).count();
48
但是,当我打印一个时,返回的文档确实包含一个包含“ PROVIDER_SOURCE”的stackTrace。我究竟做错了什么?
db.GroovyScriptResult.findOne({stackTrace:{$exists: true, $not: /PROVIDER_SOURCE/, $not: /providers/}});
{
"_id" : ObjectId("532313c8aa3c937c43ca40cb"),
"stackTrace" : "Exception: could not execute query; SQL [/* criteria query */ select... this_.PROVIDER_SOURCE ..."
}
您可以使用$ and运算符实现所需的操作:
db.GroovyScriptResult.findOne({
$and:[
{stackTrace:{$exists:true}},
{stackTrace:{$not:/PROVIDER_SOURCE/}},
{stackTrace:{$not:/providers/}}
]
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句