我正在尝试查找存在字符串 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
Run Code Online (Sandbox Code Playgroud)
但是当我打印一个时,返回的文档确实包含一个 stackTrace,其中包含“PROVIDER_SOURCE”。我究竟做错了什么?
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 ..."
}
Run Code Online (Sandbox Code Playgroud)
您可以使用$and运算符来实现您想要的:
db.GroovyScriptResult.findOne({
$and:[
{stackTrace:{$exists:true}},
{stackTrace:{$not:/PROVIDER_SOURCE/}},
{stackTrace:{$not:/providers/}}
]
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |